EffectCell

A container that runs an effect every time its data is mutated. In essence, a slimed down implementation of the Observer pattern using Rust's Fn trait.

```rust use effect_cell::EffectCell;

fn main() { let mut effectcell = EffectCell::new(0); effectcell.bind(|data| {println!("{data}");}); effect_cell.update(1); // Prints "1" } ```

Operator Passthrough

The XAssign traits have been setup so that they can modify the internal data without the need for a call through update_lambda. They will always call effects.

```rust use effect_cell::EffectCell;

fn main() { let mut effectcell = EffectCell::new(0); effectcell.bind(|data| {println!("{data}");}); effect_cell += 1; // Prints "1" } ```

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.