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

eolink
eolink
Dify.AI
Dify.AI
观测云
观测云
LigaAI
LigaAI

推荐或自荐