#merge #struct #amount #down #required #cuts #derive

merge-rs-derive

一个小的库,减少了将两个任意结构体合并成一个新的结构体所需的代码量

1 个不稳定版本

0.4.0 2023年11月20日

#40 in #down


merge-rs 中使用

MIT 许可证

7KB
119

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:?}")
}

贡献者

依赖项

~0.6–1MB
~24K SLoC