pub struct ResponseBuilder { /* private fields */ }Expand description
HTTP 响应的构建器。
Implementations§
Source§impl ResponseBuilder
impl ResponseBuilder
Sourcepub fn new() -> ResponseBuilder
pub fn new() -> ResponseBuilder
创建构建器的默认实例以构建响应。
§例子
use boluo_core::response::ResponseBuilder;
let response = ResponseBuilder::new()
.status(200)
.body(())
.unwrap();Sourcepub fn status<T>(self, status: T) -> ResponseBuilder
pub fn status<T>(self, status: T) -> ResponseBuilder
设置响应的状态码。
默认情况下,这是 200。
§例子
use boluo_core::response::Response;
let response = Response::builder()
.status(200)
.body(())
.unwrap();Sourcepub fn status_ref(&self) -> Option<&StatusCode>
pub fn status_ref(&self) -> Option<&StatusCode>
获取响应的状态码的引用。
默认情况下,这是 200。如果构建器有错误,则返回 None。
§例子
use boluo_core::http::StatusCode;
use boluo_core::response::Response;
let mut res = Response::builder();
assert_eq!(res.status_ref().unwrap(), &StatusCode::OK);
res = res.status(StatusCode::BAD_REQUEST);
assert_eq!(res.status_ref().unwrap(), &StatusCode::BAD_REQUEST);Sourcepub fn status_mut(&mut self) -> Option<&mut StatusCode>
pub fn status_mut(&mut self) -> Option<&mut StatusCode>
获取响应的状态码的可变引用。
默认情况下,这是 200。如果构建器有错误,则返回 None。
§例子
use boluo_core::http::StatusCode;
use boluo_core::response::Response;
let mut res = Response::builder();
assert_eq!(res.status_ref().unwrap(), &StatusCode::OK);
*res.status_mut().unwrap() = StatusCode::BAD_REQUEST;
assert_eq!(res.status_ref().unwrap(), &StatusCode::BAD_REQUEST);Sourcepub fn version(self, version: Version) -> ResponseBuilder
pub fn version(self, version: Version) -> ResponseBuilder
设置响应的 HTTP 版本。
默认情况下,这是 HTTP/1.1。
§例子
use boluo_core::http::Version;
use boluo_core::response::Response;
let response = Response::builder()
.version(Version::HTTP_2)
.body(())
.unwrap();Sourcepub fn version_ref(&self) -> Option<&Version>
pub fn version_ref(&self) -> Option<&Version>
获取响应的 HTTP 版本的引用。
默认情况下,这是 HTTP/1.1。如果构建器有错误,则返回 None。
§例子
use boluo_core::http::Version;
use boluo_core::response::Response;
let mut res = Response::builder();
assert_eq!(res.version_ref().unwrap(), &Version::HTTP_11);
res = res.version(Version::HTTP_2);
assert_eq!(res.version_ref().unwrap(), &Version::HTTP_2);Sourcepub fn version_mut(&mut self) -> Option<&mut Version>
pub fn version_mut(&mut self) -> Option<&mut Version>
获取响应的 HTTP 版本的可变引用。
默认情况下,这是 HTTP/1.1。如果构建器有错误,则返回 None。
§例子
use boluo_core::http::Version;
use boluo_core::response::Response;
let mut res = Response::builder();
assert_eq!(res.version_ref().unwrap(), &Version::HTTP_11);
*res.version_mut().unwrap() = Version::HTTP_2;
assert_eq!(res.version_ref().unwrap(), &Version::HTTP_2);Sourcepub fn header<K, V>(self, key: K, value: V) -> ResponseBuilderwhere
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) -> ResponseBuilderwhere
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<Error>,
HeaderValue: TryFrom<V>,
<HeaderValue as TryFrom<V>>::Error: Into<Error>,
将标头追加到响应中。
此函数将提供的键值对追加到响应内部的 HeaderMap 中。本质上,
这相当于调用 HeaderMap::append。
§例子
use boluo_core::response::Response;
let response = Response::builder()
.header("Content-Type", "text/html")
.header("X-Custom-Foo", "bar")
.header("Content-Length", 0)
.body(())
.unwrap();Sourcepub fn headers_ref(&self) -> Option<&HeaderMap<HeaderValue>>
pub fn headers_ref(&self) -> Option<&HeaderMap<HeaderValue>>
Sourcepub fn headers_mut(&mut self) -> Option<&mut HeaderMap<HeaderValue>>
pub fn headers_mut(&mut self) -> Option<&mut HeaderMap<HeaderValue>>
获取响应的标头集的可变引用。
如果构建器有错误,则返回 None。
§例子
use boluo_core::http::HeaderValue;
use boluo_core::response::Response;
let mut res = Response::builder();
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) -> ResponseBuilder
pub fn extension<T>(self, extension: T) -> ResponseBuilder
将一个类型添加到响应的扩展中。
§例子
use boluo_core::response::Response;
let response = Response::builder()
.extension("My Extension")
.body(())
.unwrap();
assert_eq!(response.extensions().get::<&'static str>(),
Some(&"My Extension"));Sourcepub fn extensions_ref(&self) -> Option<&Extensions>
pub fn extensions_ref(&self) -> Option<&Extensions>
获取响应的扩展的引用。
如果构建器有错误,则返回 None。
§例子
use boluo_core::response::Response;
let res = Response::builder().extension("My Extension").extension(5u32);
let extensions = res.extensions_ref().unwrap();
assert_eq!(extensions.get::<&'static str>(), Some(&"My Extension"));
assert_eq!(extensions.get::<u32>(), Some(&5u32));Sourcepub fn extensions_mut(&mut self) -> Option<&mut Extensions>
pub fn extensions_mut(&mut self) -> Option<&mut Extensions>
获取响应的扩展的可变引用。
如果构建器有错误,则返回 None。
§例子
use boluo_core::response::Response;
let mut res = Response::builder().extension("My Extension");
let mut extensions = res.extensions_mut().unwrap();
assert_eq!(extensions.get::<&'static str>(), Some(&"My Extension"));
extensions.insert(5u32);
assert_eq!(extensions.get::<u32>(), Some(&5u32));Trait Implementations§
Source§impl Debug for ResponseBuilder
impl Debug for ResponseBuilder
Source§impl Default for ResponseBuilder
impl Default for ResponseBuilder
Source§fn default() -> ResponseBuilder
fn default() -> ResponseBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ResponseBuilder
impl !RefUnwindSafe for ResponseBuilder
impl Send for ResponseBuilder
impl Sync for ResponseBuilder
impl Unpin for ResponseBuilder
impl !UnwindSafe for ResponseBuilder
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