dirtytype 0.5.0

A marker of types being dirty for Rust
Documentation
use dirtytype::Dirty;

#[test]
fn clean_test() {
    let mut values = vec![];
    let mut add = Dirty::new(5);
    let mut add_func = |val: &mut i32| values.push(*val);

    add.clean(&mut add_func);
    *add = 3;
    add.clean(&mut add_func);
    add.clean(&mut add_func);
    *add = 6;
    add.clean(&mut add_func);
    add.clean(&mut add_func);

    dbg!(&values);
    assert!(&[3, 6]
        .into_iter()
        .zip(values.into_iter())
        .all(|(a, b)| a == b))
}

#[test]
fn test() {
    let mut value = Dirty::new(5);
    assert!(!value.dirty);
    *value += 2;
    assert!(value.dirty);
    assert_eq!(*value, 7);

    let mut name = Dirty::new("Foo".to_owned());
    name.push_str(" Bar");
    assert_eq!(*name, "Foo Bar");
}