pub struct Builder { /* private fields */ }
Expand description
Struct used to conveniently build a response
Implementations§
source§impl Builder
impl Builder
pub fn file<F: Into<FileStream>>(self, file: F) -> Builder
file
only.source§impl Builder
impl Builder
sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new default instance of Builder
to construct either a
Head
or a Response
.
let response = Builder::new()
.status(200)
.build()
.unwrap();
sourcepub fn status<T>(self, status: T) -> Builderwhere
StatusCode: TryFrom<T>,
<StatusCode as TryFrom<T>>::Error: Into<Error>,
pub fn status<T>(self, status: T) -> Builderwhere StatusCode: TryFrom<T>, <StatusCode as TryFrom<T>>::Error: Into<Error>,
Set the HTTP status for this response.
This function will configure the HTTP status code of the Response
that
will be returned from Builder::build
.
By default this is 200
.
let response = Builder::new()
.status(200)
.build()
.unwrap();
sourcepub fn version(self, version: Version) -> Builder
pub fn version(self, version: Version) -> Builder
Set the HTTP version for this response.
This function will configure the HTTP version of the Response
that
will be returned from Builder::build
.
By default this is HTTP/1.1
let response = Builder::new()
.version(Version::HTTP_2)
.build()
.unwrap();
sourcepub fn header<K, V>(self, key: K, value: V) -> Builderwhere
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<Error>,
HeaderValue: TryFrom<V>,
<HeaderValue as TryFrom<V>>::Error: Into<Error>,
pub fn header<K, V>(self, key: K, value: V) -> Builderwhere HeaderName: TryFrom<K>, <HeaderName as TryFrom<K>>::Error: Into<Error>, HeaderValue: TryFrom<V>, <HeaderValue as TryFrom<V>>::Error: Into<Error>,
Appends a header to this response builder.
This function will append the provided key/value as a header to the
internal HeaderMap
being constructed. Essentially this is equivalent
to calling HeaderMap::append
.
let response = Builder::new()
.header("Content-Type", "text/html")
.header("X-Custom-Foo", "bar")
.header("content-length", 0)
.build()
.unwrap();
sourcepub fn headers_ref(&self) -> Option<&HeaderMap<HeaderValue>>
pub fn headers_ref(&self) -> Option<&HeaderMap<HeaderValue>>
Get header on this response builder.
When builder has error returns None.
let res = Builder::new()
.header("Accept", "text/html")
.header("X-Custom-Foo", "bar");
let headers = res.headers_ref().unwrap();
assert_eq!( headers["Accept"], "text/html" );
assert_eq!( headers["X-Custom-Foo"], "bar" );
sourcepub fn headers_mut(&mut self) -> Option<&mut HeaderMap<HeaderValue>>
pub fn headers_mut(&mut self) -> Option<&mut HeaderMap<HeaderValue>>
Get header on this response builder. when builder has error returns None
let mut res = Builder::new();
{
let headers = res.headers_mut().unwrap();
headers.insert("Accept", HeaderValue::from_static("text/html"));
headers.insert("X-Custom-Foo", HeaderValue::from_static("bar"));
}
let headers = res.headers_ref().unwrap();
assert_eq!( headers["Accept"], "text/html" );
assert_eq!( headers["X-Custom-Foo"], "bar" );
sourcepub fn extension<T>(self, extension: T) -> Builderwhere
T: Any + Send + Sync + 'static,
pub fn extension<T>(self, extension: T) -> Builderwhere T: Any + Send + Sync + 'static,
Adds an extension to this builder
let response = Builder::new()
.extension("My Extension")
.build()
.unwrap();
assert_eq!(response.extensions().get::<&'static str>(),
Some(&"My Extension"));
Adds an extension to this builder
let cookie = Cookie::new("MyCookie", "MyCookieValue");
let response = Builder::new()
.cookie(cookie)
.build()
.unwrap();
assert_eq!(response.cookies().get("MyCookie").map(|c| c.value()), Some("MyCookieValue"))