Skip to main content

ReactionRuntimeContext

Struct ReactionRuntimeContext 

Source
pub struct ReactionRuntimeContext {
    pub reaction_id: String,
    pub status_tx: ComponentEventSender,
    pub state_store: Option<Arc<dyn StateStoreProvider>>,
    pub query_provider: Arc<dyn QueryProvider>,
}
Expand description

Context provided to Reaction plugins during initialization.

Contains Arc<T> instances for all drasi-lib provided services. DrasiLib constructs this context when a reaction is added via add_reaction().

§Available Services

  • reaction_id: The unique identifier for this reaction instance
  • status_tx: Channel for reporting component status/lifecycle events
  • state_store: Optional persistent state storage (if configured)
  • query_provider: Access to query instances for subscription

§Clone

This struct implements Clone and all fields use Arc internally, making cloning cheap (just reference count increments).

Fields§

§reaction_id: String

Unique identifier for this reaction instance

§status_tx: ComponentEventSender

Channel for reporting component status/lifecycle events.

Use this to send status updates (Starting, Running, Stopped, Error) back to DrasiLib for monitoring and lifecycle management.

§state_store: Option<Arc<dyn StateStoreProvider>>

Optional persistent state storage.

This is Some if a state store provider was configured on DrasiLib, otherwise None. Reactions can use this to persist state across restarts.

§query_provider: Arc<dyn QueryProvider>

Access to query instances for subscription.

Reactions use this to get query instances and subscribe to their results. This is always available (not optional) since reactions require queries.

Implementations§

Source§

impl ReactionRuntimeContext

Source

pub fn new( reaction_id: impl Into<String>, status_tx: ComponentEventSender, state_store: Option<Arc<dyn StateStoreProvider>>, query_provider: Arc<dyn QueryProvider>, ) -> Self

Create a new reaction runtime context.

This is typically called by ReactionManager when adding a reaction to DrasiLib. Plugin developers do not need to call this directly.

§Arguments
  • reaction_id - The unique identifier for this reaction
  • status_tx - Channel for reporting component status/lifecycle events
  • state_store - Optional persistent state storage
  • query_provider - Access to query instances for subscription
Source

pub fn reaction_id(&self) -> &str

Get the reaction’s unique identifier.

Source

pub fn status_tx(&self) -> &ComponentEventSender

Get a reference to the status channel.

Use this to send component status updates (Starting, Running, Stopped, Error) back to DrasiLib.

Source

pub fn state_store(&self) -> Option<&Arc<dyn StateStoreProvider>>

Get a reference to the state store if configured.

Returns Some(&Arc<dyn StateStoreProvider>) if a state store was configured, otherwise None.

Source

pub fn query_provider(&self) -> &Arc<dyn QueryProvider>

Get a reference to the query provider.

Use this to get query instances and subscribe to their results.

Trait Implementations§

Source§

impl Clone for ReactionRuntimeContext

Source§

fn clone(&self) -> ReactionRuntimeContext

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ReactionRuntimeContext

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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