equalia 1.0.0

Automatically implement PartialEq for your structs
Documentation
#![allow(dead_code)]

use equalia::*;
use std::time::Duration;


#[derive(Equalia)]
#[equalia(hash)]
struct Example {
    id: u8,

    #[equalia(only)]
    name: String,

    #[equalia(only)]
    address: String,

    #[equalia(skip)]
    duration: Duration,
}

#[derive(Debug, Default, Equalia)]
struct OnlyTest {
    #[equalia(only)]
    id: u8,
    name: String,
    #[equalia(only)]
    address: String,
}

fn hello(_: &u8) -> u8 {
    1
}


#[derive(Debug, Default, Equalia)]
#[equalia(hash)]
struct MapTest {
    #[equalia(map = "hello")]
    id: u8,
}


#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn it_works() {
        let mut s1 = OnlyTest::default();
        let mut s2 = OnlyTest::default();
        s1.id = 1;
        s1.name = "other".to_owned();
        s2.id = 1;
        assert_eq!(s1, s2);

        // let mut hasher = DefaultHasher::new();
        // s1.hash(hasher);
        // println!("Hash is {:x}!", hasher.finish());
    }
}