effect_cell 0.1.1

Container that runs effects when updated
Documentation
  • Coverage
  • 100%
    24 out of 24 items documented7 out of 22 items with examples
  • Size
  • Source code size: 28.18 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.79 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • Homepage
  • fprasx/effect-cell
    1 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • fprasx

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.

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.

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

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.