Skip to main content

EventsClient

Struct EventsClient 

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

Sub-client for SSE event streams. Obtained via [AkribesClient::events()].

Implementations§

Source§

impl EventsClient

Source

pub async fn event_stream( &self, script_name: Option<&str>, ) -> Result<(UnboundedReceiver<HubEvent>, EventSubscription)>

Open an SSE event stream and return a receiver + subscription handle.

Events are sent to the returned mpsc::UnboundedReceiver. Dropping the EventSubscription cancels the background task automatically.

Note: The channel is unbounded — a slow consumer on a busy execution stream can cause unbounded memory growth. Callers should process events promptly, use tokio::sync::mpsc::Receiver::try_recv to drain, or prefer event_stream_bounded (#1117) when consumer back-pressure is required.

Source

pub async fn event_stream_bounded( &self, script_name: Option<&str>, buffer: usize, ) -> Result<(Receiver<HubEvent>, EventSubscription)>

Open an SSE event stream on a bounded channel (#1117).

buffer is the channel’s max in-flight event count. When the consumer can’t keep up, the background SSE listener applies back-pressure: it parks until the consumer drains a slot. This is the safer default for long-lived subscriptions on busy executions — the unbounded variant can grow unboundedly when the consumer stalls. The trade-off is that prolonged stalls can stall the SSE listener too, which counts against the server-side keepalive window; pick buffer generously (e.g. 1024) when in doubt.

Returns a standard bounded mpsc::Receiver; otherwise identical to event_stream.

Source

pub async fn execution_stream( &self, script_name: &str, ) -> Result<(UnboundedReceiver<EngineEvent>, EventSubscription)>

Stream execution engine events for a specific script.

Source

pub async fn typed_execution_stream( &self, script_name: &str, ) -> Result<(UnboundedReceiver<WorkflowEvent>, EventSubscription)>

Stream execution events translated to typed [WorkflowEvent]s for a specific script (#1239 — mirrors Python events.typed_engine_events).

Functionally identical to execution_stream, but each event is passed through WorkflowEvent::from(EngineEvent) before being yielded so consumers can pattern-match on typed variants instead of inspecting raw EngineEvent payloads. Use this when you want the same ergonomics as RunStream’s typed iterator on a free-standing execution subscription (e.g. attaching to a run started by someone else).

Source

pub async fn on_events<F>( &self, script_name: Option<&str>, callback: F, ) -> Result<EventSubscription>
where F: FnMut(HubEvent) + Send + 'static,

Convenience: call callback for every hub event.

Source

pub async fn on_script_execution<F>( &self, script_name: &str, callback: F, ) -> Result<EventSubscription>
where F: FnMut(EngineEvent) + Send + 'static,

Convenience: call callback for every execution event on a script.

Source

pub async fn on_script_change<F>( &self, script_name: &str, callback: F, ) -> Result<EventSubscription>
where F: FnMut(i64, Option<String>) + Send + 'static,

Convenience: call callback on script version updates.

Source

pub async fn on_script_schema_change<F>( &self, script_name: &str, callback: F, ) -> Result<EventSubscription>
where F: FnMut(i64, Option<String>) + Send + 'static,

Like on_script_change, but also marks the script as broken in the contract state so that subsequent run() calls raise before POSTing (matching the TS and Python SDK behaviour).

Trait Implementations§

Source§

impl Clone for EventsClient

Source§

fn clone(&self) -> EventsClient

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
Source§

impl Debug for EventsClient

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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.
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