Skip to main content

Response

Struct Response 

Source
pub struct Response {
    pub status: StatusCode,
    pub headers: HeaderMap,
    pub body: Bytes,
    /* private fields */
}
Expand description

HTTP Response wrapper

Fields§

§status: StatusCode§headers: HeaderMap§body: Bytes

Implementations§

Source§

impl Response

Source

pub fn new(status: StatusCode) -> Self

Source

pub fn stream() -> (BodySender, Self)

A response whose body is produced while it is being sent

Returns the sender for the body chunks and the response; set status and headers on the response as usual. The body ends when the last BodySender is dropped, and send fails with Disconnected once the client is gone. Middleware that rewrites body (compression, ETags) leaves streams alone.

use ullun::prelude::*;

async fn countdown(_req: Request) -> Result<Response> {
    let (tx, res) = Response::stream();
    tokio::spawn(async move {
        for n in (1..=3).rev() {
            if tx.send(format!("{n}\n")).await.is_err() {
                return; // client went away
            }
        }
    });
    Ok(res.with_header("content-type", "text/plain"))
}
Source

pub fn is_streaming(&self) -> bool

Whether the body is streamed instead of held in body

Source

pub fn cookie(self, cookie: Cookie) -> Self

Set a cookie

Source

pub fn ok() -> Self

Source

pub fn with_status(self, status: StatusCode) -> Self

Source

pub fn with_body(self, body: impl Into<Bytes>) -> Self

Source

pub fn with_header( self, key: impl Into<String>, value: impl Into<String>, ) -> Self

Source

pub fn json<T: Serialize>(data: T) -> Self

Source

pub fn text(text: impl Into<String>) -> Self

Source

pub fn html(html: impl Into<String>) -> Self

200 OK with an HTML body

Source

pub fn redirect(location: impl Into<String>) -> Self

303 See Other, the right answer after a form POST (Post/Redirect/Get)

Source

pub fn redirect_permanent(location: impl Into<String>) -> Self

308 Permanent Redirect, keeps method and body

Source

pub fn from_error(error: Error) -> Self

Trait Implementations§

Source§

impl<T: Serialize> From<Json<T>> for Response

Source§

fn from(json: Json<T>) -> Self

Converts to this type from the input type.

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