Crates.io | equalia |
lib.rs | equalia |
version | 1.0.0 |
source | src |
created_at | 2021-03-16 23:54:40.045487 |
updated_at | 2021-03-18 22:11:31.967206 |
description | Automatically implement PartialEq for your structs |
homepage | |
repository | https://github.com/phonkee/equalia/ |
max_upload_size | |
id | 369992 |
size | 8,127 |
This package helps you with implementation of Eq and PartialEq for structs. You can provide which struct fields to compare and which not.
When we want to define which fields are omitted, or we want to provide custom function to return value to be compared.
#[derive(Equalia)]
#[equalia(hash)]
pub struct Entity {
#[equalia(skip)]
value1: u8,
#[equalia(map = "map_func")]
value2: u8,
}
// map function that changes value
fn map_func(input: &u8) -> u8 {
input * 2
}
When single field ins struct can identify equality.
#[derive(Equalia)]
#[equalia(hash)]
pub struct Entity {
#[equalia(only)]
id: u8,
// this value will be ignored
value2: u8,
}
When you provide #[equalia(hash)]
for struct/enum equalia will automatically
implement Hash
trait from given configuration.
Peter Vrba phonkee@pm.me