Skip to main content

EffectDriver

Struct EffectDriver 

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

Drives steps: performs their effects, journals them, emits their events.

Implementations§

Source§

impl EffectDriver

Source

pub fn new(journal: EffectJournal) -> Self

A driver over journal, with no handlers yet — add them with Self::with_handler; an effect nobody claims is a clear error.

Source

pub fn with_catalog(self, catalog: Arc<NodeCatalog>) -> Self

Provide the step library that dynamic fan-out draws from.

Source

pub fn with_handler(self, handler: Arc<dyn EffectHandler>) -> Self

Add a handler. The first whose handles() claims an effect performs it.

Source

pub fn with_event_bus(self, bus: Arc<EventBus>) -> Self

Emit the agent events (turns, effects, handoffs) to this bus.

Source

pub fn run( &self, step: &dyn Step, run_id: &str, node_id: &str, input: &Value, ) -> Result<NodeOutcome>

Run a step to completion.

Bounded by [somatize_core::step::StepMeta::max_turns]: a step that has not finished by then is looping, and stopping with a clear error beats burning tokens until something else gives out.

Source

pub fn resume_with( &self, run_id: &str, node_id: &str, turn: usize, reason: &SuspendReason, answer: Value, ) -> Result<()>

Deliver the answer a suspended run was waiting for.

Recorded at the exact site the step suspended, so the next run under the same id replays to that point and finds it. There is no separate checkpoint file: the journal is the checkpoint.

node_id, turn and reason come from the NodeOutcome::Paused that stopped the run.

Trait Implementations§

Source§

impl Clone for EffectDriver

Source§

fn clone(&self) -> EffectDriver

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. 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
§

impl<T> AsAny for T
where T: Any,

§

fn as_any(&self) -> &(dyn Any + 'static)

The receiver as &dyn Any, ready for downcast_ref.
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.

§

impl<T> Instrument for T

§

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

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

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> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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