Skip to main content

Observe

Trait Observe 

Source
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 &self to support shared observers (Arc)
  • State mutation must use interior mutability if required
  • Must be object-safe to allow dynamic dispatch

Required Methods§

Source

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>
where S: UserState, T: Observe<S> + ?Sized,

Blanket implementation for shared observers.

This allows Arc<T> to be used directly as an observer.

Source§

fn observe( &self, name: &'static str, state: StateView<'_, S>, event: &EngineSignal<S::Float>, )

Implementors§

Source§

impl<S> Observe<S> for Tracer
where S: UserState, S::Float: FloatCore + Value,