2 个版本
0.1.1 | 2023 年 5 月 26 日 |
---|---|
0.1.0 | 2023 年 5 月 19 日 |
#2253 在 Rust 模式
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 版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的,任何有意提交以包含在作品中的贡献,将根据上述许可证进行双许可,而无需任何附加条款或条件。