Skip to main content

StreamingResponse

Enum StreamingResponse 

Source
pub enum StreamingResponse<'a> {
    H2(H2StreamingResponse<'a>),
    H1(H1StreamingResponse<'a>),
}
Expand description

A streaming HTTP response that yields body chunks incrementally.

Wraps either an HTTP/2 or HTTP/1.1 streaming response. The connection is borrowed exclusively while this type exists — no other requests can be sent until the body is fully consumed or the response is dropped.

§Example

let mut stream = client.post("/v1/chat/completions")
    .header("content-type", "application/json")
    .body(payload)
    .send_streaming()
    .await?;

assert_eq!(stream.status(), 200);
while let Some(chunk) = stream.next_chunk().await? {
    // process each body chunk as it arrives
}

Variants§

Implementations§

Source§

impl StreamingResponse<'_>

Source

pub fn status(&self) -> u16

HTTP status code.

Source

pub fn headers(&self) -> &[(String, String)]

Response headers as (name, value) pairs.

Source

pub fn header(&self, name: &str) -> Option<&str>

Get the first header value matching name (case-insensitive).

Source

pub async fn next_chunk(&mut self) -> Result<Option<Bytes>, HttpError>

Yield the next body chunk, or None when the body is complete.

Auto Trait Implementations§

§

impl<'a> Freeze for StreamingResponse<'a>

§

impl<'a> RefUnwindSafe for StreamingResponse<'a>

§

impl<'a> Send for StreamingResponse<'a>

§

impl<'a> Sync for StreamingResponse<'a>

§

impl<'a> Unpin for StreamingResponse<'a>

§

impl<'a> UnsafeUnpin for StreamingResponse<'a>

§

impl<'a> !UnwindSafe for StreamingResponse<'a>

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, 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.