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

macro derive-partial-eq-extras

More customisable #[derive(PartialEq)]

4 releases

0.2.0 Mar 1, 2024
0.1.2 Jan 27, 2023
0.1.1 Jan 24, 2023
0.1.0 Dec 19, 2021

#1458 in Development tools

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 downloads per month
Used in 4 crates (via ezno-parser)

MIT license

9KB
137 lines

Derive partial eq extras

crates.io badge docs.rs badge

More customisable #[derive(PartialEq)]

Adds ability to ignore/skip fields

#[partial_eq_ignore]

use derive_partial_eq_extras::PartialEqExtras;

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

Here the y field is ignored when comparing As. e.g A { x: 4, y: "Hello".into() } == A { x: 4, y: "World".into() } is 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,
}

Here the x, y and z fields are ignored because they have type u32 which is marked on a top level attribute as something to ignore. This becomes a shorthand for defining #[partial_eq_ignore] on all fields with u32 types

Dependencies

~330–780KB
~18K SLoC