Crate changed[][src]

Expand description

Cd: A “smart pointer” that tracks changes to the data it owns.


use changed::Cd;
// Create the change tracker with an i32
let mut test: Cd<i32> = Cd::new(20);
// Mutate it (calling deref_mut through the *)
*test += 5;
// changed() reports whether or not it was changed
// Reset the tracker back to false
// Read the data
assert_eq!(*test, 25);
// That didn't trip the change detection!

How it works

Technically, it doesn’t track changes. It tracks calls to deref_mut() so it is entirely possible to call deref_mut() and not change it, giving a false positive.

Along with that, there is a function to mutate a Cd without tripping change detection.


Cd: Change Detection