#[observable]Expand description
为结构体自动实现 Observable trait 的属性宏。
此宏应用于结构体定义,会自动:
- 添加
registry: ObserverRegistry<Self>字段 - 实现
Observabletrait,包括State和Error关联类型 - 提供
attach和detach方法的默认实现
§使用方法
ⓘ
use pattern_macros::observable;
#[observable(state = u64, error = anyhow::Error)]
struct TemperatureSensor {
temperature: f64,
}也可以使用自定义的错误类型:
ⓘ
#[observable(state = String, error = std::io::Error)]
struct Logger {
log_level: u8,
}§生成的内容
宏会生成以下内容:
- 添加
registry: ObserverRegistry<Self>字段到结构体 - 实现
Observabletrait,设置State和Error关联类型 - 实现
attach和detach方法,委托给内部的registry