Crates.io | effect_cell |
lib.rs | effect_cell |
version | 0.1.1 |
source | src |
created_at | 2023-05-19 01:52:45.384413 |
updated_at | 2023-05-26 21:56:18.87571 |
description | Container that runs effects when updated |
homepage | https://github.com/fprasx/effect-cell |
repository | https://github.com/fprasx/effect-cell |
max_upload_size | |
id | 868470 |
size | 28,492 |
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"
}
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"
}
Licensed under either of
at your option.
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.