Struct rocket::local::blocking::LocalResponse[][src]

pub struct LocalResponse<'c> { /* fields omitted */ }
Expand description

A blocking response from a dispatched LocalRequest.

This LocalResponse implements io::Read. As such, if into_string() and into_bytes() do not suffice, the response’s body can be read directly:

use std::io::{self, Read};

use rocket::local::blocking::Client;
use rocket::http::Status;

#[get("/")]
fn hello_world() -> &'static str {
    "Hello, world!"
}

#[launch]
fn rocket() -> _ {
    rocket::build().mount("/", routes![hello_world])
}

// Dispatch a `GET /` request.
let client = Client::tracked(rocket()).expect("valid rocket");
let mut response = client.get("/").dispatch();

// Check metadata validity.
assert_eq!(response.status(), Status::Ok);
assert_eq!(response.body().preset_size(), Some(13));

// Read 10 bytes of the body. Note: in reality, we'd use `into_string()`.
let mut buffer = [0; 10];
response.read(&mut buffer)?;
assert_eq!(buffer, "Hello, wor".as_bytes());

For more, see the top-level documentation.

Implementations

impl LocalResponse<'_>[src]

pub fn status(&self) -> Status[src]

Returns the HTTP status of self.

Example

use rocket::local::blocking::LocalResponse;

let response: LocalResponse = response;
let status = response.status();

pub fn content_type(&self) -> Option<ContentType>[src]

Returns the Content-Type, if a valid one is set, of self.

Example

use rocket::local::blocking::LocalResponse;

let response: LocalResponse = response;
let content_type = response.content_type();

pub fn headers(&self) -> &HeaderMap<'_>[src]

Returns the HTTP headers of self.

Example

use rocket::local::blocking::LocalResponse;

let response: LocalResponse = response;
let headers = response.headers();

pub fn cookies(&self) -> &CookieJar<'_>[src]

Return a cookie jar containing the HTTP cookies in the response.

Example

use rocket::local::blocking::LocalResponse;

let response: LocalResponse = response;
let string = response.cookies();

pub fn body(&self) -> &Body<'_>[src]

Returns the response body, if there is one, of self.

Example

use rocket::local::blocking::LocalResponse;

let response: LocalResponse = response;
let body = response.body();

pub fn into_string(self) -> Option<String>[src]

Consumes self and reads the entirety of its body into a string.

If reading fails, the body contains invalid UTF-8 characters, or the body is unset in the response, returns None. Otherwise, returns Some. The string may be empty if the body is empty.

Example

use rocket::local::blocking::LocalResponse;

let response: LocalResponse = response;
let string = response.into_string();

pub fn into_bytes(self) -> Option<Vec<u8>>[src]

Consumes self and reads the entirety of its body into a Vec of bytes.

If reading fails or the body is unset in the response, returns None. Otherwise, returns Some. The returned vector may be empty if the body is empty.

Example

use rocket::local::blocking::LocalResponse;

let response: LocalResponse = response;
let bytes = response.into_bytes();

pub fn into_json<T>(self) -> Option<T> where
    T: Send + DeserializeOwned + 'static, 
[src]

This is supported on crate feature json only.

Consumes self and deserializes its body as JSON without buffering in memory.

If deserialization fails or the body is unset in the response, returns None. Otherwise, returns Some.

Example

use rocket::local::blocking::LocalResponse;
use rocket::serde::Deserialize;

#[derive(Deserialize)]
struct Task {
    id: usize,
    complete: bool,
    text: String,
}

let response: LocalResponse = response;
let task = response.into_json::<Task>();

pub fn into_msgpack<T>(self) -> Option<T> where
    T: Send + DeserializeOwned + 'static, 
[src]

This is supported on crate feature msgpack only.

Consumes self and deserializes its body as MessagePack without buffering in memory.

If deserialization fails or the body is unset in the response, returns None. Otherwise, returns Some.

Example

use rocket::local::blocking::LocalResponse;
use rocket::serde::Deserialize;

#[derive(Deserialize)]
struct Task {
    id: usize,
    complete: bool,
    text: String,
}

let response: LocalResponse = response;
let task = response.into_msgpack::<Task>();

Trait Implementations

impl Debug for LocalResponse<'_>[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Read for LocalResponse<'_>[src]

fn read(&mut self, buf: &mut [u8]) -> Result<usize>[src]

Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more

fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>1.36.0[src]

Like read, except that it reads into a slice of buffers. Read more

fn is_read_vectored(&self) -> bool[src]

🔬 This is a nightly-only experimental API. (can_vector)

Determines if this Reader has an efficient read_vectored implementation. Read more

unsafe fn initializer(&self) -> Initializer[src]

🔬 This is a nightly-only experimental API. (read_initializer)

Determines if this Reader can work with buffers of uninitialized memory. Read more

fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>1.0.0[src]

Read all bytes until EOF in this source, placing them into buf. Read more

fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>1.0.0[src]

Read all bytes until EOF in this source, appending them to buf. Read more

fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>1.6.0[src]

Read the exact number of bytes required to fill buf. Read more

fn by_ref(&mut self) -> &mut Self1.0.0[src]

Creates a “by reference” adaptor for this instance of Read. Read more

fn bytes(self) -> Bytes<Self>1.0.0[src]

Transforms this Read instance to an Iterator over its bytes. Read more

fn chain<R>(self, next: R) -> Chain<Self, R> where
    R: Read
1.0.0[src]

Creates an adaptor which will chain this stream with another. Read more

fn take(self, limit: u64) -> Take<Self>1.0.0[src]

Creates an adaptor which will read at most limit bytes from it. Read more

Auto Trait Implementations

impl<'c> !RefUnwindSafe for LocalResponse<'c>

impl<'c> !Send for LocalResponse<'c>

impl<'c> !Sync for LocalResponse<'c>

impl<'c> Unpin for LocalResponse<'c>

impl<'c> !UnwindSafe for LocalResponse<'c>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T> Instrument for T[src]

fn instrument(self, span: Span) -> Instrumented<Self>[src]

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

fn in_current_span(self) -> Instrumented<Self>[src]

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> IntoCollection<T> for T

pub fn into_collection<A>(self) -> SmallVec<A> where
    A: Array<Item = T>, 

Converts self into a collection.

pub fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
    F: FnMut(T) -> U,
    A: Array<Item = U>, 

impl<R> ReadBytesExt for R where
    R: Read + ?Sized

fn read_u8(&mut self) -> Result<u8, Error>

Reads an unsigned 8 bit integer from the underlying reader. Read more

fn read_i8(&mut self) -> Result<i8, Error>

Reads a signed 8 bit integer from the underlying reader. Read more

fn read_u16<T>(&mut self) -> Result<u16, Error> where
    T: ByteOrder, 

Reads an unsigned 16 bit integer from the underlying reader. Read more

fn read_i16<T>(&mut self) -> Result<i16, Error> where
    T: ByteOrder, 

Reads a signed 16 bit integer from the underlying reader. Read more

fn read_u24<T>(&mut self) -> Result<u32, Error> where
    T: ByteOrder, 

Reads an unsigned 24 bit integer from the underlying reader. Read more

fn read_i24<T>(&mut self) -> Result<i32, Error> where
    T: ByteOrder, 

Reads a signed 24 bit integer from the underlying reader. Read more

fn read_u32<T>(&mut self) -> Result<u32, Error> where
    T: ByteOrder, 

Reads an unsigned 32 bit integer from the underlying reader. Read more

fn read_i32<T>(&mut self) -> Result<i32, Error> where
    T: ByteOrder, 

Reads a signed 32 bit integer from the underlying reader. Read more

fn read_u48<T>(&mut self) -> Result<u64, Error> where
    T: ByteOrder, 

Reads an unsigned 48 bit integer from the underlying reader. Read more

fn read_i48<T>(&mut self) -> Result<i64, Error> where
    T: ByteOrder, 

Reads a signed 48 bit integer from the underlying reader. Read more

fn read_u64<T>(&mut self) -> Result<u64, Error> where
    T: ByteOrder, 

Reads an unsigned 64 bit integer from the underlying reader. Read more

fn read_i64<T>(&mut self) -> Result<i64, Error> where
    T: ByteOrder, 

Reads a signed 64 bit integer from the underlying reader. Read more

fn read_u128<T>(&mut self) -> Result<u128, Error> where
    T: ByteOrder, 

Reads an unsigned 128 bit integer from the underlying reader. Read more

fn read_i128<T>(&mut self) -> Result<i128, Error> where
    T: ByteOrder, 

Reads a signed 128 bit integer from the underlying reader. Read more

fn read_uint<T>(&mut self, nbytes: usize) -> Result<u64, Error> where
    T: ByteOrder, 

Reads an unsigned n-bytes integer from the underlying reader. Read more

fn read_int<T>(&mut self, nbytes: usize) -> Result<i64, Error> where
    T: ByteOrder, 

Reads a signed n-bytes integer from the underlying reader. Read more

fn read_uint128<T>(&mut self, nbytes: usize) -> Result<u128, Error> where
    T: ByteOrder, 

Reads an unsigned n-bytes integer from the underlying reader.

fn read_int128<T>(&mut self, nbytes: usize) -> Result<i128, Error> where
    T: ByteOrder, 

Reads a signed n-bytes integer from the underlying reader.

fn read_f32<T>(&mut self) -> Result<f32, Error> where
    T: ByteOrder, 

Reads a IEEE754 single-precision (4 bytes) floating point number from the underlying reader. Read more

fn read_f64<T>(&mut self) -> Result<f64, Error> where
    T: ByteOrder, 

Reads a IEEE754 double-precision (8 bytes) floating point number from the underlying reader. Read more

fn read_u16_into<T>(&mut self, dst: &mut [u16]) -> Result<(), Error> where
    T: ByteOrder, 

Reads a sequence of unsigned 16 bit integers from the underlying reader. Read more

fn read_u32_into<T>(&mut self, dst: &mut [u32]) -> Result<(), Error> where
    T: ByteOrder, 

Reads a sequence of unsigned 32 bit integers from the underlying reader. Read more

fn read_u64_into<T>(&mut self, dst: &mut [u64]) -> Result<(), Error> where
    T: ByteOrder, 

Reads a sequence of unsigned 64 bit integers from the underlying reader. Read more

fn read_u128_into<T>(&mut self, dst: &mut [u128]) -> Result<(), Error> where
    T: ByteOrder, 

Reads a sequence of unsigned 128 bit integers from the underlying reader. Read more

fn read_i8_into(&mut self, dst: &mut [i8]) -> Result<(), Error>

Reads a sequence of signed 8 bit integers from the underlying reader. Read more

fn read_i16_into<T>(&mut self, dst: &mut [i16]) -> Result<(), Error> where
    T: ByteOrder, 

Reads a sequence of signed 16 bit integers from the underlying reader. Read more

fn read_i32_into<T>(&mut self, dst: &mut [i32]) -> Result<(), Error> where
    T: ByteOrder, 

Reads a sequence of signed 32 bit integers from the underlying reader. Read more

fn read_i64_into<T>(&mut self, dst: &mut [i64]) -> Result<(), Error> where
    T: ByteOrder, 

Reads a sequence of signed 64 bit integers from the underlying reader. Read more

fn read_i128_into<T>(&mut self, dst: &mut [i128]) -> Result<(), Error> where
    T: ByteOrder, 

Reads a sequence of signed 128 bit integers from the underlying reader. Read more

fn read_f32_into<T>(&mut self, dst: &mut [f32]) -> Result<(), Error> where
    T: ByteOrder, 

Reads a sequence of IEEE754 single-precision (4 bytes) floating point numbers from the underlying reader. Read more

fn read_f32_into_unchecked<T>(&mut self, dst: &mut [f32]) -> Result<(), Error> where
    T: ByteOrder, 

👎 Deprecated since 1.2.0:

please use read_f32_into instead

DEPRECATED. Read more

fn read_f64_into<T>(&mut self, dst: &mut [f64]) -> Result<(), Error> where
    T: ByteOrder, 

Reads a sequence of IEEE754 double-precision (8 bytes) floating point numbers from the underlying reader. Read more

fn read_f64_into_unchecked<T>(&mut self, dst: &mut [f64]) -> Result<(), Error> where
    T: ByteOrder, 

👎 Deprecated since 1.2.0:

please use read_f64_into instead

DEPRECATED. Read more

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

pub fn vzip(self) -> V