Skip to main content

StreamTextResult

Struct StreamTextResult 

Source
pub struct StreamTextResult<O> { /* private fields */ }
Expand description

Result of a streaming call with independent event views and a final result.

Reading a view or awaiting final_result drives progress. Views created through full_stream keep their unread events until consumed or dropped; a slow view does not block another view. The final owner drop cancels the pipeline.

Implementations§

Source§

impl<O> StreamTextResult<O>

Source

pub fn call_id(&self) -> &str

The call id.

Source

pub fn split(self) -> (EventStream, Completion<O>)

Splits the result into the event stream and the completion handle.

Source

pub fn full_stream(&mut self) -> EventStream

Creates an independent view starting at the current event cursor.

Creating a view leaves the result’s cursor in place, allowing later views to read the same events. Lagging views retain unread events.

Source

pub fn into_completion(self) -> Completion<O>

Returns a completion future that drives the pipeline without an event consumer.

Source

pub async fn final_result(self) -> Result<GenerateTextResult<O>, Error>

Drives the pipeline and returns its owned final result.

§Errors

Returns the error that ended the call. Retain the result to borrow its text, usage, steps and output repeatedly after successful completion.

Source

pub fn text_view(&mut self) -> impl Stream<Item = String> + Send + use<O>

Creates an independent view yielding only text deltas.

Inspect a full view or await the final result for terminal errors.

Source

pub fn events(&mut self) -> &mut EventStream

The result’s current event cursor; consuming it advances future view starts.

Source

pub async fn consume(self) -> Result<GenerateTextResult<O>, Error>

Drains every event and returns the final result.

§Errors

Returns the error that ended the call.

Source§

impl<O: Send + Sync + 'static> StreamTextResult<O>

Source

pub fn into_shared_completion( self, ) -> impl Future<Output = Arc<Result<GenerateTextResult<O>, Error>>> + Clone + Send

Returns cloneable final-result waiters that jointly drive the pipeline.

The result and error are shared through Arc, so neither must be cloneable. Each waiter resolves to the same allocation. Dropping all waiters and event views cancels an unfinished call.

Source§

impl<O: Send + 'static> StreamTextResult<O>

Source

pub fn text_stream(self) -> impl Stream<Item = Result<String, Error>> + Send

Consumes the result, yielding text deltas only. The final item is an error when the call failed.

Source

pub fn partial_output_stream( self, ) -> impl Stream<Item = PartialOutput<O>> + Send

Consumes the result, yielding the structured output as it grows.

Only the first text part of the call (or retry attempt) is parsed; a value is published whenever the repaired partial JSON changes. Errors are not reported here: use consume or the completion for them.

Source

pub fn partial_output_view( &mut self, ) -> impl Stream<Item = PartialOutput<O>> + Send + use<O>

Creates an independent view of changing structured output.

Like the consuming view, this parses the first text part per attempt; terminal errors remain available through the final result.

Source§

impl<O> StreamTextResult<O>
where O: ArrayElements + IntoIterator<Item = <O as ArrayElements>::Element> + Send + 'static, O::Element: DeserializeOwned + Send,

Source

pub fn element_stream( self, ) -> impl Stream<Item = Result<O::Element, Error>> + Send

Consumes the result, yielding each element of an array output as soon as it is complete. The final item is an error when the call failed.

Source

pub fn element_view( &mut self, ) -> impl Stream<Item = Result<O::Element, Error>> + Send + use<O>

Creates an independent view of completed array elements.

Element decoding errors appear in this view; inspect the final result for terminal provider or pipeline errors.

Trait Implementations§

Source§

impl<O> Debug for StreamTextResult<O>

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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