Skip to main content

ResponseHandler

Struct ResponseHandler 

Source
pub struct ResponseHandler { /* private fields */ }

Implementations§

Source§

impl ResponseHandler

Source

pub fn into_response( self, request_headers: &HeaderMap, cors_allow_credentials_origins: &[String], ) -> Result<Response<BoxBody>, Error>

build response

Source

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

set http status code

Source

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

add custom header

Source

pub fn with_headers<K, V, I>(self, headers: I) -> Self
where K: Into<String>, V: Into<String>, I: IntoIterator<Item = (K, Option<V>)>,

add custom headers

Source

pub fn with_custom_headers( self, custom_headers: Option<&HashMap<String, Option<String>>>, ) -> Self

Apply an operator’s custom respond.headers, always last — after whichever with_text/with_json_body/with_binary_body call already set a default content-type (RFC 065’s override rule: an explicit content-type always wins over the derived default, on every body source, uniformly).

§Why one method instead of each call site’s own if let

Before this, every response-building function repeated if let Some(custom_headers) = custom_headers { response_handler = response_handler.with_headers(custom_headers.to_owned()); } itself, and the two places that got the ordering wrong (json_response, and FileResponse’s own binary-file path) each silently let the derived content-type win instead — because self.headers is a plain HashMap, whichever call happens last wins for that key, and there was nothing forcing “last” to always mean “the custom headers.” Routing every call site through this one method, called only after the body is set, makes that ordering the only way to call it — not a convention that can drift a third time.

Source

pub fn with_text( self, text: impl Into<String>, content_type: Option<&str>, ) -> Self

add text to body

Source

pub fn with_json_body(self, body: impl Into<String>) -> Self

treat response as json

Source

pub fn with_binary_body( self, body: Vec<u8>, content_type: Option<impl Into<String>>, ) -> Self

treat response as json

Trait Implementations§

Source§

impl Default for ResponseHandler

Source§

fn default() -> ResponseHandler

Returns the “default value” for a type. 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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