4 个版本 (重大变更)
0.4.0 | 2023年11月20日 |
---|---|
0.3.0 | 2023年4月21日 |
0.2.0 | 2022年10月27日 |
0.1.2 | 2022年2月16日 |
#7 in #left
9KB
127 行
merge-rs
一个小型库,可以减少将两个任意结构体合并为新的结构体所需的代码量。
[dependencies]
merge-rs = "0.4"
示例
fn special_concat(left: &str, right: &String) -> Result<String, Box<Error>> {
Ok(format!("{left}_{right}"))
}
#[derive(Debug, Merge)]
struct MyType {
#[merge_field(skip)]
transient_field: usize,
#[merge_field(strategy = "special_concat")]
label: String
}
fn main() {
let first = MyType { transient_field: 123, label: "first".to_owned() };
let second = MyType { transient_field: 456, label: "second".to_owned() };
let merged = first.merge(&second).unwrap();
println!("{merged:?}")
}
贡献者
- Dan Hable [email protected]
依赖
~2MB
~43K SLoC