# 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