#combine #struct #derive #macro

过程宏 无需std derive-combine

一个用于将多个结构体合并为一个的结构宏

1 个不稳定版本

0.1.0 2023年5月4日

#1422过程宏

MIT 许可证

5KB
66

derive-combine

use derive_combine::Combine;

#[derive(Combine, Eq, PartialEq, Debug)]
struct Abc {
    a: Option<u8>,
    b: Vec<u8>,
    d: u16,
}

#[test]
fn test_combine() {
    let mut abc = Abc {
        a: Some(1),
        b: vec![2],
        d: 3,
    };

    let other = Abc {
        a: None,
        b: vec![4],
        d: 5,
    };

    abc.combine(other);

    let expected = Abc {
        a: Some(1),
        b: vec![2, 4],
        d: 3,
    };

    assert_eq!(abc, expected);
}

依赖

~0.4–0.8MB
~19K SLoC