effect_cell 0.1.1

Container that runs effects when updated
Documentation
# `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 effect_cell = EffectCell::new(0);
    effect_cell.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 effect_cell = EffectCell::new(0);
    effect_cell.bind(|data| {println!("{data}");});
    effect_cell += 1;
    // Prints "1"
}
```

## License

Licensed under either of

- Apache License, Version 2.0
  ([LICENSE-APACHE]https://github.com/fprasx/peapod/blob/main/LICENSE-APACHE
  or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license
  ([LICENSE-MIT]https://github.com/fprasx/peapod/blob/main/LICENSE-MIT or
  http://opensource.org/licenses/MIT)

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.