pub struct EventEmitter { /* private fields */ }Expand description
Sink the runner uses to emit stream events as they arrive from the
upstream provider. The runner calls emit(event) for every chunk;
CAR receives it through the StreamEvent channel returned from
crate::InferenceEngine::generate_tracked_stream.
Cloning shares the underlying channel — a runner that fans out (e.g., separate workers per tool call) can clone the emitter once per worker.
Implementations§
Source§impl EventEmitter
impl EventEmitter
Sourcepub async fn emit(&self, event: StreamEvent)
pub async fn emit(&self, event: StreamEvent)
Emit one event. Best-effort: if the receiver was dropped
(caller stopped listening), the event is silently discarded.
The runner can detect this via Self::is_closed and bail
early if it wants to stop the upstream call.
Trait Implementations§
Source§impl Clone for EventEmitter
impl Clone for EventEmitter
Source§fn clone(&self) -> EventEmitter
fn clone(&self) -> EventEmitter
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for EventEmitter
impl RefUnwindSafe for EventEmitter
impl Send for EventEmitter
impl Sync for EventEmitter
impl Unpin for EventEmitter
impl UnsafeUnpin for EventEmitter
impl UnwindSafe for EventEmitter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more