3 个版本 (重大更改)
0.3.0 | 2024 年 5 月 17 日 |
---|---|
0.2.0 | 2024 年 5 月 3 日 |
0.1.0 | 2024 年 5 月 3 日 |
#3 在 #exposed
52KB
1.5K SLoC
用于创建基于事件的库
概述
该库包含 2 个特质
查看器返回值;
DeleteView
: 标记删除查看器
接收器返回值,ReceiverResult
Continue
: 正常处理输出(类似于Some
)Stop
: 停止处理输出(类似于None
`)Delete
: 返回带有接收器应删除标志的事件,这特别用于与路由器通信,以便在允许事件通过的同时干净地销毁拦截器
存储接收器和查看器的方式有多种
RcLinker
和ArcLinker
: 智能指针,当它被丢弃时,将标记任何RcLinked
或ArcLinked
的实例为删除准备,清理任何悬挂引用。Exposed
: 一个接收器的容器,允许多个View
ers 预先附加Router
:一个接收器的容器,允许另一个路由器在事件开始时拦截它,通过重复拦截函数,将其委派给较低的路由器,允许抽象级别,拦截器执行预期操作而不破坏路由器的其余部分。
方法
接收器充当一种懒惰的垃圾收集器。
当接收器标记希望被删除(Delete
)时,应预期在引入标记之前发生的一切,包括观众和拦截器。
这意味着如果收到 Delete
,预期所有先前系统都已运行,责任落在接收器上,以 最小干扰 继续事件传播。
对此例外的是 Stop
,表示已做出退出事件传播的决定。
这意味着如果收到 Stop
,预期并非所有先前系统都已运行,责任落在接收器上,以 最小影响 退出事件传播。
依赖关系
~500KB
~11K SLoC