Rust.cc

Rust.cc -

nade 0.1.0,为 Rust 函数添加命名参数和默认参数

nade nade,一个为函数添加命名参数和默认参数的属性宏。 大家都知道,Rust 中缺少命名参数和默认参数,虽然可以通过使用将函数参数设为Into<Option<T>>,模拟默认参数,但是对于命名参数,就做不到了,目前比较通用的方法大概是用 结构体 + Builder 模式。 但是我在看 Kotlin 写 Compose 代码的时候,实在是眼馋 Kotlin 能写得很优雅,再看 leptos,用 typed-builder 模拟,总是差了一点味道。所以我参考了社区中已有的 2 个实现,default-args 和 duang,实现了一个新的宏,nade。取自 named 和 default 的各前 2 个字母。 示例 use nade::nade; #[nade] fn foo(#[nade(42)] a: i32, b: i32, #[nade] c: i32) -> i32 { a + b + c } fn main() { assert_eq!(foo!(b = 1, c = 2), 45); assert_eq!(foo!(a = 1, b = 2, c = 3), 6); assert_eq!(foo!(a = 1, b = 2), 3); assert_eq!(foo!(1, 2, c = 3), 6); assert_eq!(foo!(1, 2, 3), 6); assert_eq!(foo!(b = 3), 45); } 这只是一个简单的例子,更详细的文档和示例请看仓库。 nade 欢迎各位使用,有问题欢迎提 issue,如果觉得好用,欢迎 star。

None

rust 函数

相关推荐 去reddit讨论

热榜 Top10

最近读过

  1. nade 0.1.0,为 Rust 函数添加命名参数和默认参数 - 约读过
  2. 语义连通性驱动的跨域分割的伪标记 - 约读过
  3. 监控利器:普罗米修斯介绍和安装 - 约读过
  4. 代理设计模式还不会?2分钟搞定 - 约读过
  5. 在 Surge 使用 Warp+ - 约读过
  6. jQuery 4.0 测试版发布,不再支持 IE 10,体积更小,性能更好 - 约读过
  7. 使用 OpenClash - 约读过
  8. 单帧未来视频预测用于视频异常检测 - 约读过
  9. Vectorize: a vector database for shipping AI-powered applications to production, fast - 约读过
  10. AMD最新FPGA芯片为AI高频交易提供超低延迟 - 约读过
观测云
观测云
eolink
eolink
LigaAI
LigaAI
Dify.AI
Dify.AI

推荐或自荐