2 个版本

0.1.1 2023 年 5 月 26 日
0.1.0 2023 年 5 月 19 日

#2253Rust 模式

MIT/Apache

16KB
260

EffectCell

每当数据被修改时运行效果的容器。本质上,是使用 Rust 的 Fn 特征实现的简化版的观察者模式。

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"
}

操作符透传

XAssign 特征已经被设置为可以修改内部数据,而无需通过 update_lambda 进行调用。它们将始终调用效果。

use effect_cell::EffectCell;

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

许可证

根据以下之一许可

由您选择。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的,任何有意提交以包含在作品中的贡献,将根据上述许可证进行双许可,而无需任何附加条款或条件。

无运行时依赖