pub enum Framing {
Sse,
Ndjson,
Whole,
}Expand description
How a reply’s bytes are split into wire frames.
Variants§
Sse
text/event-stream: WHATWG event-stream grammar (SseFramer).
Ndjson
Newline-delimited JSON (NdjsonFramer).
Whole
The whole body is one frame.
Implementations§
Source§impl Framing
impl Framing
Sourcepub fn split(&self, bytes: &[u8]) -> Vec<WireFrame>
pub fn split(&self, bytes: &[u8]) -> Vec<WireFrame>
Split a whole reply body into the frames a decoder reads: one per SSE
event with a non-blank data field, one per NDJSON line, or the
whole body.
use rig_http::http_client::framing::{Framing, WireFrame};
let frames = Framing::Sse.split(b"data: {}\n\ndata: [DONE]\n\n");
assert_eq!(frames.len(), 2);
assert_eq!(frames[1].as_str(), "[DONE]");Trait Implementations§
impl Copy for Framing
impl Eq for Framing
impl StructuralPartialEq for Framing
Auto Trait Implementations§
impl Freeze for Framing
impl RefUnwindSafe for Framing
impl Send for Framing
impl Sync for Framing
impl Unpin for Framing
impl UnsafeUnpin for Framing
impl UnwindSafe for Framing
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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