Skip to content

phonkee/equalia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

#[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,
}

Hash

When you provide #[equalia(hash)] for struct/enum equalia will automatically implement Hash trait from given configuration.

author

Peter Vrba phonkee@pm.me

About

Rust struct equality macros

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages