pub struct Response<T> { /* private fields */ }
Expand description
Response wrapper containing helper functions over the HTTP client’s response.
This exists so that it can be determined whether to deserialize the body. This is useful when you don’t need the body and therefore don’t want to spend the time to deserialize it.
§Examples
use std::env;
use twilight_http::Client;
let client = Client::new(env::var("DISCORD_TOKEN")?);
let response = client.user(user_id).await?;
println!("status code: {}", response.status());
let user = response.model().await?;
println!("username: {}#{:04}", user.name, user.discriminator);
Implementations§
source§impl<T> Response<T>
impl<T> Response<T>
sourcepub fn headers(&self) -> HeaderIter<'_> ⓘ
pub fn headers(&self) -> HeaderIter<'_> ⓘ
Iterator of the response headers.
sourcepub fn status(&self) -> StatusCode
pub fn status(&self) -> StatusCode
Status code of the response.
sourcepub fn bytes(self) -> BytesFuture ⓘ
pub fn bytes(self) -> BytesFuture ⓘ
Consume the response and accumulate the chunked body into bytes.
For a textual representation of the response body text
should be
preferred.
§Examples
Count the number of bytes in a response body:
use std::env;
use twilight_http::Client;
let client = Client::new(env::var("DISCORD_TOKEN")?);
let response = client.user(user_id).await?;
let bytes = response.bytes().await?;
println!("size of body: {}", bytes.len());
§Errors
Returns a DeserializeBodyErrorType::Chunking
error type if the
response body could not be entirely read.
sourcepub fn text(self) -> TextFuture ⓘ
pub fn text(self) -> TextFuture ⓘ
Consume the response and accumulate the body into a string.
For the raw bytes of the response body bytes
should be preferred.
§Examples
Print the textual response from getting the current user:
use std::env;
use twilight_http::Client;
let client = Client::new(env::var("DISCORD_TOKEN")?);
let response = client.current_user().await?;
let text = response.text().await?;
println!("body: {text}");
§Errors
Returns a DeserializeBodyErrorType::BodyNotUtf8
error type if the
response body is not UTF-8 valid.
Returns a DeserializeBodyErrorType::Chunking
error type if the
response body could not be entirely read.
source§impl<T: DeserializeOwned> Response<T>
impl<T: DeserializeOwned> Response<T>
sourcepub fn model(self) -> ModelFuture<T> ⓘ
pub fn model(self) -> ModelFuture<T> ⓘ
Consume the response, chunking the body and then deserializing it into the request’s matching model.
§Errors
Returns a DeserializeBodyErrorType::Chunking
error type if the
response body could not be entirely read.
Returns a DeserializeBodyErrorType::Deserializing
error type if the
response body could not be deserialized into the target model.
source§impl<T: DeserializeOwned> Response<ListBody<T>>
impl<T: DeserializeOwned> Response<ListBody<T>>
sourcepub fn model(self) -> ModelFuture<Vec<T>> ⓘ
pub fn model(self) -> ModelFuture<Vec<T>> ⓘ
Consume the response, chunking the body and then deserializing it into a list of something.
This is an alias for models
.
§Errors
Returns a DeserializeBodyErrorType::Chunking
error type if the
response body could not be entirely read.
Returns a DeserializeBodyErrorType::Deserializing
error type if the
response body could not be deserialized into a list of something.
sourcepub fn models(self) -> ModelFuture<Vec<T>> ⓘ
pub fn models(self) -> ModelFuture<Vec<T>> ⓘ
Consume the response, chunking the body and then deserializing it into a list of something.
§Errors
Returns a DeserializeBodyErrorType::Chunking
error type if the
response body could not be entirely read.
Returns a DeserializeBodyErrorType::Deserializing
error type if the
response body could not be deserialized into a list of something.