Trait Observer
Source pub trait Observer {
type State;
type Error;
// Required method
fn update(&self, state: &Self::State) -> Result<(), Self::Error>;
}
Expand description
观察者 trait
定义观察者必须实现的接口。观察者可以订阅主题的状态变化,
并在状态更新时通过 update 方法接收通知。
§类型参数
State: 观察者关注的状态类型
Error: 观察者处理更新时可能返回的错误类型
§实现要求
实现者需要提供具体的状态类型和错误类型,并实现 update 方法。
update 方法应该快速返回,避免阻塞通知过程。
§线程安全
实现者应确保 update 方法是线程安全的,因为可能从多个线程调用。
观察者关注的状态类型
当主题状态变化时,会传递此类型的值给观察者。
观察者处理更新时可能返回的错误类型
如果观察者处理更新失败,可以返回此类型的错误。
接收状态更新通知
当主题状态发生变化时调用此方法。实现者应该:
- 处理传入的状态
- 返回
Ok(()) 表示处理成功
- 返回
Err(error) 表示处理失败
§返回值
Ok(()): 成功处理状态更新
Err(Self::Error): 处理状态更新时发生错误
§错误处理
如果此方法返回错误,主题的 notify 方法会根据指定的通知策略
决定是否继续通知其他观察者。