# Equalia
This package helps you with implementation of Eq and PartialEq for structs.
You can provide which struct fields to compare and which not.
#
#### Structs
When we want to define which fields are omitted, or we want to provide
custom function to return value to be compared.
```rust
#[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.
```rust
#[derive(Equalia)]
#[equalia(hash)]
pub struct Entity {
#[equalia(only)]
id: u8,
// this value will be ignored
value2: u8,
}
```
## Hash
When you provide `#[equalia(hash)]` for struct/enum equalia will automatically
implement `Hash` trait from given configuration.
# author
Peter Vrba <phonkee@pm.me>