#partial-eq #extra #partial #derive #eq

derive-partial-eq-extras

更可定制的 #[derive(PartialEq)]

4 个版本

0.2.0 2024年3月1日
0.1.2 2023年1月27日
0.1.1 2023年1月24日
0.1.0 2021年12月19日

#1458 in 开发工具

Download history 71/week @ 2024-04-01 42/week @ 2024-04-08 21/week @ 2024-04-15 11/week @ 2024-04-22 18/week @ 2024-04-29 28/week @ 2024-05-06 55/week @ 2024-05-13 40/week @ 2024-05-20 64/week @ 2024-05-27 59/week @ 2024-06-03 32/week @ 2024-06-10 51/week @ 2024-06-17 32/week @ 2024-06-24 35/week @ 2024-07-01 16/week @ 2024-07-08 36/week @ 2024-07-15

每月下载 121
4 个软件包中使用(通过 ezno-parser

MIT 许可证

9KB
137

派生部分等价额外功能

crates.io badge docs.rs badge

更可定制的 #[derive(PartialEq)]

添加忽略/跳过字段的特性

#[partial_eq_ignore]

use derive_partial_eq_extras::PartialEqExtras;

#[derive(PartialEqExtras)]
struct A {
    x: u32,
    #[partial_eq_ignore]
    y: String,
}

在此,比较 y 字段时忽略 A。例如 A { x: 4, y: "Hello".into() } == A { x: 4, y: "World".into() } 返回 true

#[partial_eq_ignore_types]

use derive_partial_eq_extras::PartialEqExtras;

#[derive(PartialEqExtras)]
#[partial_eq_ignore_types(u32)]
struct Numbers {
    name: String,
    x: u32,
    y: u32,
    z: u32,
}

在此,xyz 字段被忽略,因为它们的类型是 u32,这在顶级属性中被标记为需要忽略。这成为定义所有具有 u32 类型字段的 #[partial_eq_ignore] 的简写

依赖项

~330–780KB
~18K SLoC