#track #change #notify #watch #reactive #listener

raii-change-tracker

跟踪数据变化并通知监听器

2个版本

使用旧的Rust 2015

0.1.1 2018年4月14日
0.1.0 2017年7月23日

#listener中排名第40

MIT/Apache

12KB
95

raii-change-tracker - 跟踪数据变化并通知监听器 版本 状态 文档

文档

文档可在此处找到。

跟踪数据变化并通知监听器。

主要API功能是DataTracker结构体,它获取值的所有权。

要监听DataTracker结构体实例的变化,函数DataTracker::add_listener()返回一个futures::Stream。在每次更改后,此Stream会立即提供旧值和新值,并与tokio生态系统集成。

操作原理是DataTracker::as_tracked_mut()返回一个可变的ModifierModifier是一个RAII作用域保护器,具有两个关键属性

  • 它实现了DerefMut特质,允许以舒适的方式访问底层数据。
  • 它实现了Drop特质,它检查底层数据是否已更改,如果是,则通知监听器。

此外,DataTracker::as_ref()返回数据的(不可变)引用,用于仅需要数据只读访问的情况。

为了实现跟踪,当创建Modifier时,会创建原始数据的副本,当Modifier销毁时,会执行相等性检查。如果原始数据和新的数据不相等,则使用旧值和新值的引用调用回调函数。

许可证

根据以下任一项获得许可

贡献

除非您明确声明,否则您根据Apache-2.0许可证定义的工作中提交的任何有意贡献,应双重授权如上所述,不附加任何额外条款或条件。

行为准则

与raii-change-tracker在包括但不限于本GitHub仓库在内的任何空间互动的人应遵守我们的行为准则

依赖项

~53KB