pub struct Response<'a, W = Fresh> where
W: Any, {
pub version: HttpVersion,
/* private fields */
}
Expand description
The outgoing half for a Tcp connection, created by a Server
and given to a Handler
.
The default StatusCode
for a Response
is 200 OK
.
There is a Drop
implementation for Response
that will automatically
write the head and flush the body, if the handler has not already done so,
so that the server doesn’t accidentally leave dangling requests.
Fields
version: HttpVersion
The HTTP version of this response.
Implementations
sourceimpl<'a, W> Response<'a, W> where
W: Any,
impl<'a, W> Response<'a, W> where
W: Any,
sourcepub fn status(&self) -> StatusCode
pub fn status(&self) -> StatusCode
The status of this response.
sourcepub fn construct(
version: HttpVersion,
body: HttpWriter<&'a mut (dyn Write + 'a)>,
status: StatusCode,
headers: &'a mut Headers
) -> Response<'a, Fresh>ⓘNotable traits for Response<'a, Streaming>impl<'a> Write for Response<'a, Streaming>
pub fn construct(
version: HttpVersion,
body: HttpWriter<&'a mut (dyn Write + 'a)>,
status: StatusCode,
headers: &'a mut Headers
) -> Response<'a, Fresh>ⓘNotable traits for Response<'a, Streaming>impl<'a> Write for Response<'a, Streaming>
Construct a Response from its constituent parts.
sourcepub fn deconstruct(
self
) -> (HttpVersion, HttpWriter<&'a mut (dyn Write + 'a)>, StatusCode, &'a mut Headers)
pub fn deconstruct(
self
) -> (HttpVersion, HttpWriter<&'a mut (dyn Write + 'a)>, StatusCode, &'a mut Headers)
Deconstruct this Response into its constituent parts.
sourceimpl<'a> Response<'a, Fresh>
impl<'a> Response<'a, Fresh>
sourcepub fn new(
stream: &'a mut (dyn Write + 'a),
headers: &'a mut Headers
) -> Response<'a, Fresh>ⓘNotable traits for Response<'a, Streaming>impl<'a> Write for Response<'a, Streaming>
pub fn new(
stream: &'a mut (dyn Write + 'a),
headers: &'a mut Headers
) -> Response<'a, Fresh>ⓘNotable traits for Response<'a, Streaming>impl<'a> Write for Response<'a, Streaming>
Creates a new Response that can be used to write to a network stream.
sourcepub fn send(self, body: &[u8]) -> Result<(), Error>
pub fn send(self, body: &[u8]) -> Result<(), Error>
Writes the body and ends the response.
This is a shortcut method for when you have a response with a fixed
size, and would only need a single write
call normally.
Example
fn handler(res: Response) {
res.send(b"Hello World!").unwrap();
}
The above is the same, but shorter, than the longer:
use std::io::Write;
use hyper::header::ContentLength;
fn handler(mut res: Response) {
let body = b"Hello World!";
res.headers_mut().set(ContentLength(body.len() as u64));
let mut res = res.start().unwrap();
res.write_all(body).unwrap();
}
sourcepub fn start(self) -> Result<Response<'a, Streaming>, Error>
pub fn start(self) -> Result<Response<'a, Streaming>, Error>
Consume this Response
sourcepub fn status_mut(&mut self) -> &mut StatusCode
pub fn status_mut(&mut self) -> &mut StatusCode
Get a mutable reference to the status.
sourcepub fn headers_mut(&mut self) -> &mut Headers
pub fn headers_mut(&mut self) -> &mut Headers
Get a mutable reference to the Headers.
Trait Implementations
sourceimpl<'a> Write for Response<'a, Streaming>
impl<'a> Write for Response<'a, Streaming>
sourcefn write(&mut self, msg: &[u8]) -> Result<usize, Error>
fn write(&mut self, msg: &[u8]) -> Result<usize, Error>
Write a buffer into this writer, returning how many bytes were written. Read more
sourcefn flush(&mut self) -> Result<(), Error>
fn flush(&mut self) -> Result<(), Error>
Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
sourcefn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)Determines if this Write
r has an efficient write_vectored
implementation. Read more
1.0.0 · sourcefn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
sourcefn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations
impl<'a, W = Fresh> !RefUnwindSafe for Response<'a, W>
impl<'a, W = Fresh> !Send for Response<'a, W>
impl<'a, W = Fresh> !Sync for Response<'a, W>
impl<'a, W> Unpin for Response<'a, W> where
W: Unpin,
impl<'a, W = Fresh> !UnwindSafe for Response<'a, W>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
sourcefn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
Converts self
into a collection.
fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
F: FnMut(T) -> U,
A: Array<Item = U>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
impl<W> WriteBytesExt for W where
W: Write + ?Sized,
impl<W> WriteBytesExt for W where
W: Write + ?Sized,
fn write_u8(&mut self, n: u8) -> Result<(), Error>
fn write_u8(&mut self, n: u8) -> Result<(), Error>
Writes an unsigned 8 bit integer to the underlying writer. Read more
fn write_i8(&mut self, n: i8) -> Result<(), Error>
fn write_i8(&mut self, n: i8) -> Result<(), Error>
Writes a signed 8 bit integer to the underlying writer. Read more
fn write_u16<T>(&mut self, n: u16) -> Result<(), Error> where
T: ByteOrder,
fn write_u16<T>(&mut self, n: u16) -> Result<(), Error> where
T: ByteOrder,
Writes an unsigned 16 bit integer to the underlying writer. Read more
fn write_i16<T>(&mut self, n: i16) -> Result<(), Error> where
T: ByteOrder,
fn write_i16<T>(&mut self, n: i16) -> Result<(), Error> where
T: ByteOrder,
Writes a signed 16 bit integer to the underlying writer. Read more
fn write_u24<T>(&mut self, n: u32) -> Result<(), Error> where
T: ByteOrder,
fn write_u24<T>(&mut self, n: u32) -> Result<(), Error> where
T: ByteOrder,
Writes an unsigned 24 bit integer to the underlying writer. Read more
fn write_i24<T>(&mut self, n: i32) -> Result<(), Error> where
T: ByteOrder,
fn write_i24<T>(&mut self, n: i32) -> Result<(), Error> where
T: ByteOrder,
Writes a signed 24 bit integer to the underlying writer. Read more
fn write_u32<T>(&mut self, n: u32) -> Result<(), Error> where
T: ByteOrder,
fn write_u32<T>(&mut self, n: u32) -> Result<(), Error> where
T: ByteOrder,
Writes an unsigned 32 bit integer to the underlying writer. Read more
fn write_i32<T>(&mut self, n: i32) -> Result<(), Error> where
T: ByteOrder,
fn write_i32<T>(&mut self, n: i32) -> Result<(), Error> where
T: ByteOrder,
Writes a signed 32 bit integer to the underlying writer. Read more
fn write_u48<T>(&mut self, n: u64) -> Result<(), Error> where
T: ByteOrder,
fn write_u48<T>(&mut self, n: u64) -> Result<(), Error> where
T: ByteOrder,
Writes an unsigned 48 bit integer to the underlying writer. Read more
fn write_i48<T>(&mut self, n: i64) -> Result<(), Error> where
T: ByteOrder,
fn write_i48<T>(&mut self, n: i64) -> Result<(), Error> where
T: ByteOrder,
Writes a signed 48 bit integer to the underlying writer. Read more
fn write_u64<T>(&mut self, n: u64) -> Result<(), Error> where
T: ByteOrder,
fn write_u64<T>(&mut self, n: u64) -> Result<(), Error> where
T: ByteOrder,
Writes an unsigned 64 bit integer to the underlying writer. Read more
fn write_i64<T>(&mut self, n: i64) -> Result<(), Error> where
T: ByteOrder,
fn write_i64<T>(&mut self, n: i64) -> Result<(), Error> where
T: ByteOrder,
Writes a signed 64 bit integer to the underlying writer. Read more
fn write_u128<T>(&mut self, n: u128) -> Result<(), Error> where
T: ByteOrder,
fn write_u128<T>(&mut self, n: u128) -> Result<(), Error> where
T: ByteOrder,
Writes an unsigned 128 bit integer to the underlying writer.
fn write_i128<T>(&mut self, n: i128) -> Result<(), Error> where
T: ByteOrder,
fn write_i128<T>(&mut self, n: i128) -> Result<(), Error> where
T: ByteOrder,
Writes a signed 128 bit integer to the underlying writer.
fn write_uint<T>(&mut self, n: u64, nbytes: usize) -> Result<(), Error> where
T: ByteOrder,
fn write_uint<T>(&mut self, n: u64, nbytes: usize) -> Result<(), Error> where
T: ByteOrder,
Writes an unsigned n-bytes integer to the underlying writer. Read more
fn write_int<T>(&mut self, n: i64, nbytes: usize) -> Result<(), Error> where
T: ByteOrder,
fn write_int<T>(&mut self, n: i64, nbytes: usize) -> Result<(), Error> where
T: ByteOrder,
Writes a signed n-bytes integer to the underlying writer. Read more
fn write_uint128<T>(&mut self, n: u128, nbytes: usize) -> Result<(), Error> where
T: ByteOrder,
fn write_uint128<T>(&mut self, n: u128, nbytes: usize) -> Result<(), Error> where
T: ByteOrder,
Writes an unsigned n-bytes integer to the underlying writer. Read more
fn write_int128<T>(&mut self, n: i128, nbytes: usize) -> Result<(), Error> where
T: ByteOrder,
fn write_int128<T>(&mut self, n: i128, nbytes: usize) -> Result<(), Error> where
T: ByteOrder,
Writes a signed n-bytes integer to the underlying writer. Read more