2个版本
0.1.1 | 2023年9月9日 |
---|---|
0.1.0 | 2023年9月9日 |
#503 in #struct
在set_field中使用
5KB
69 行
set_field的派生宏
示例
use set_field::SetField;
#[derive(SetField)]
struct Foo {
a: i32,
b: Option<bool>,
c: i32,
}
fn test() {
let mut t = Foo { a: 777, b: None, c: 0 };
// return true on success:
assert_eq!(t.set_field("a", 888), true);
// return true on success:
assert_eq!(t.set_field("b", Some(true)), true);
assert_eq!(t.a, 888);
assert_eq!(t.b, Some(true));
// return false on nonexistent field:
assert_eq!(t.set_field("d", 0), false);
// return false on wrong type:
assert_eq!(t.set_field("b", 0), false);
// won't compile:
// assert_eq!(t.set_field("a", 0.0), false);
}
lib.rs
:
set_field的派生宏
依赖项
~295–750KB
~18K SLoC