Skip to main content

RuntimeHookChain

Struct RuntimeHookChain 

Source
pub struct RuntimeHookChain { /* private fields */ }
Expand description

Ordered runtime hook composition.

Lifecycle, progress, telemetry, and log events are sent to every hook. Transform hooks are applied in order, with each hook receiving the payload returned by the previous hook.

Implementations§

Source§

impl RuntimeHookChain

Source

pub fn new(hooks: Vec<Arc<dyn RuntimeHooks>>) -> Self

Creates a chain from hooks in invocation order.

Source

pub fn empty() -> Self

Creates an empty chain with the same behavior as NoopRuntimeHooks.

Source

pub fn len(&self) -> usize

Returns the number of hooks in the chain.

Source

pub fn is_empty(&self) -> bool

Returns true when the chain contains no hooks.

Trait Implementations§

Source§

impl Default for RuntimeHookChain

Source§

fn default() -> RuntimeHookChain

Returns the “default value” for a type. Read more
Source§

impl RuntimeHooks for RuntimeHookChain

Source§

fn env_connected<'life0, 'async_trait>( &'life0 self, event: EnvConnectedEvent, ) -> Pin<Box<dyn Future<Output = Result<(), HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn model_connected<'life0, 'async_trait>( &'life0 self, event: ModelConnectedEvent, ) -> Pin<Box<dyn Future<Output = Result<(), HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn session_started<'life0, 'async_trait>( &'life0 self, event: SessionStartedEvent, ) -> Pin<Box<dyn Future<Output = Result<(), HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn episode_started<'life0, 'async_trait>( &'life0 self, event: EpisodeStartedEvent, ) -> Pin<Box<dyn Future<Output = Result<(), HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn episode_completed<'life0, 'async_trait>( &'life0 self, event: EpisodeCompletedEvent, ) -> Pin<Box<dyn Future<Output = Result<(), HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn action_received<'life0, 'async_trait>( &'life0 self, event: ActionReceivedEvent, ) -> Pin<Box<dyn Future<Output = Result<(), HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn transform_action<'life0, 'async_trait>( &'life0 self, event: ActionReceivedEvent, ) -> Pin<Box<dyn Future<Output = Result<Option<MessageBytes>, HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn step_completed<'life0, 'async_trait>( &'life0 self, event: StepCompletedEvent, ) -> Pin<Box<dyn Future<Output = Result<(), HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn observation_emitted<'life0, 'async_trait>( &'life0 self, event: ObservationEmittedEvent, ) -> Pin<Box<dyn Future<Output = Result<(), HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn transform_observation<'life0, 'async_trait>( &'life0 self, event: ObservationEmittedEvent, ) -> Pin<Box<dyn Future<Output = Result<Option<MessageBytes>, HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn telemetry_window<'life0, 'async_trait>( &'life0 self, event: TelemetryWindowEvent, ) -> Pin<Box<dyn Future<Output = Result<(), HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn telemetry_summary<'life0, 'async_trait>( &'life0 self, event: TelemetrySummaryEvent, ) -> Pin<Box<dyn Future<Output = Result<(), HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn session_ended<'life0, 'async_trait>( &'life0 self, event: SessionEndedEvent, ) -> Pin<Box<dyn Future<Output = Result<(), HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn session_failed<'life0, 'async_trait>( &'life0 self, event: SessionFailedEvent, ) -> Pin<Box<dyn Future<Output = Result<(), HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn log<'life0, 'async_trait>( &'life0 self, event: LogEvent, ) -> Pin<Box<dyn Future<Output = Result<(), HookError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more