pub trait Observe<S: UserState>: Send + Sync {
// Required method
fn observe(
&self,
name: &'static str,
state: StateView<'_, S>,
event: &EngineSignal<S::Float>,
);
}Expand description
Core observer trait for the engine event system.
Observers receive a stream of signal events during execution along with a read-only view over the iteration state
§Design
- Uses
&selfto support shared observers (Arc) - State mutation must use interior mutability if required
- Must be object-safe to allow dynamic dispatch
Required Methods§
fn observe( &self, name: &'static str, state: StateView<'_, S>, event: &EngineSignal<S::Float>, )
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl<S, T> Observe<S> for Arc<T>
Blanket implementation for shared observers.
impl<S, T> Observe<S> for Arc<T>
Blanket implementation for shared observers.
This allows Arc<T> to be used directly as an observer.