pub struct StreamTranslator { /* private fields */ }Expand description
Pure streaming translator state (DW-077).
Implementations§
Source§impl StreamTranslator
impl StreamTranslator
Sourcepub fn new(id: String, model_alias: String, created: u64) -> Self
pub fn new(id: String, model_alias: String, created: u64) -> Self
New translator stamping chunks with id (the response id),
model_alias (what the client asked for — never the provider
model), and created (unix seconds, fixed at stream start).
Sourcepub fn feed(
&mut self,
bytes: &[u8],
adapter: &dyn ProviderAdapter,
) -> (Vec<ClientFrame>, usize, bool)
pub fn feed( &mut self, bytes: &[u8], adapter: &dyn ProviderAdapter, ) -> (Vec<ClientFrame>, usize, bool)
Feed provider bytes; returns the client frames for every COMPLETE provider frame these bytes complete (may be empty — bytes that only continue a partial frame). Also reports how many delta chunks were forwarded and whether one of them was the FIRST forwarded chunk of the stream (the first-token signal).
Sourcepub fn flush_partial(
&mut self,
adapter: &dyn ProviderAdapter,
) -> (Vec<ClientFrame>, usize, bool)
pub fn flush_partial( &mut self, adapter: &dyn ProviderAdapter, ) -> (Vec<ClientFrame>, usize, bool)
Flush a final provider frame not terminated by a blank line
(tolerant providers exist; well-formed streams yield nothing
here — the body’s clean end drives Self::finish).
Sourcepub fn finish(&mut self) -> Vec<ClientFrame> ⓘ
pub fn finish(&mut self) -> Vec<ClientFrame> ⓘ
The terminal frames for a CLEAN stream end: the accumulated
usage chunk (when the provider reported any usage) followed by
the gateway’s own data: [DONE]. Returns them once; later
calls return empty (idempotent tail).
Sourcepub fn abort_tail(&mut self, message: &str) -> Vec<ClientFrame> ⓘ
pub fn abort_tail(&mut self, message: &str) -> Vec<ClientFrame> ⓘ
The terminal frames for a MID-STREAM ABORT (the provider body errored after frames were forwarded): an OpenAI-shaped error chunk then the terminator. Already-forwarded content stands.
Auto Trait Implementations§
impl Freeze for StreamTranslator
impl RefUnwindSafe for StreamTranslator
impl Send for StreamTranslator
impl Sync for StreamTranslator
impl Unpin for StreamTranslator
impl UnwindSafe for StreamTranslator
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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