pub trait Observe: Serialize {
type Observer<'i>: Observer<'i, Target = Self>
where Self: 'i;
// Provided method
fn observe<'i>(&'i mut self) -> Self::Observer<'i> { ... }
}Expand description
A trait for types that can be observed for mutations.
Types implementing Observe can be wrapped in Observers that track mutations.
The trait is typically derived using the #[derive(Observe)] macro.
§Example
use morphix::Observe;
use serde::Serialize;
#[derive(Serialize, Observe)]
struct MyStruct {
field: String,
}
let mut data = MyStruct { field: "value".to_string() };
let mut data_observer = data.observe();
// Mutations through observer are tracked
data_observer.field.push_str(" modified");Required Associated Types§
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.