2个版本 (1个稳定版)
1.0.0 | 2021年3月18日 |
---|---|
0.1.0 | 2021年3月16日 |
#928 在 过程宏
7KB
127 代码行
Equalia
此包帮助你实现结构体的 Eq 和 PartialEq。你可以指定哪些字段需要比较,哪些不需要。
结构体
当我们想要定义哪些字段被省略,或者我们想要提供自定义函数来返回比较值时。
#[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
}
当结构体中的单个字段可以标识相等性时。
#[derive(Equalia)]
#[equalia(hash)]
pub struct Entity {
#[equalia(only)]
id: u8,
// this value will be ignored
value2: u8,
}
哈希
当为结构体/枚举提供 #[equalia(hash)]
时,equalia 将根据给定配置自动实现 Hash
特性。
作者
Peter Vrba [email protected]
依赖项
~2MB
~42K SLoC