Struct twilight_http::response::Response
source · [−]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).exec().await?;
println!("status code: {}", response.status());
let user = response.model().await?;
println!("username: {}#{:04}", user.name, user.discriminator);
Implementations
sourceimpl<T> Response<T>
impl<T> Response<T>
sourcepub fn headers(&self) -> HeaderIter<'_>ⓘNotable traits for HeaderIter<'a>impl<'a> Iterator for HeaderIter<'a> type Item = (&'a str, &'a [u8]);
pub fn headers(&self) -> HeaderIter<'_>ⓘNotable traits for HeaderIter<'a>impl<'a> Iterator for HeaderIter<'a> type Item = (&'a str, &'a [u8]);
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ⓘNotable traits for BytesFutureimpl Future for BytesFuture type Output = Result<Vec<u8>, DeserializeBodyError>;
pub fn bytes(self) -> BytesFutureⓘNotable traits for BytesFutureimpl Future for BytesFuture type Output = Result<Vec<u8>, DeserializeBodyError>;
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).exec().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ⓘNotable traits for TextFutureimpl Future for TextFuture type Output = Result<String, DeserializeBodyError>;
pub fn text(self) -> TextFutureⓘNotable traits for TextFutureimpl Future for TextFuture type Output = Result<String, DeserializeBodyError>;
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().exec().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.
sourceimpl<T: DeserializeOwned> Response<T>
impl<T: DeserializeOwned> Response<T>
sourcepub fn model(self) -> ModelFuture<T>ⓘNotable traits for ModelFuture<T>impl<T: DeserializeOwned + Unpin> Future for ModelFuture<T> type Output = Result<T, DeserializeBodyError>;
pub fn model(self) -> ModelFuture<T>ⓘNotable traits for ModelFuture<T>impl<T: DeserializeOwned + Unpin> Future for ModelFuture<T> type Output = Result<T, DeserializeBodyError>;
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.
sourceimpl<T: DeserializeOwned> Response<ListBody<T>>
impl<T: DeserializeOwned> Response<ListBody<T>>
sourcepub fn model(self) -> ModelFuture<Vec<T>>ⓘNotable traits for ModelFuture<T>impl<T: DeserializeOwned + Unpin> Future for ModelFuture<T> type Output = Result<T, DeserializeBodyError>;
pub fn model(self) -> ModelFuture<Vec<T>>ⓘNotable traits for ModelFuture<T>impl<T: DeserializeOwned + Unpin> Future for ModelFuture<T> type Output = Result<T, DeserializeBodyError>;
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>>ⓘNotable traits for ModelFuture<T>impl<T: DeserializeOwned + Unpin> Future for ModelFuture<T> type Output = Result<T, DeserializeBodyError>;
pub fn models(self) -> ModelFuture<Vec<T>>ⓘNotable traits for ModelFuture<T>impl<T: DeserializeOwned + Unpin> Future for ModelFuture<T> type Output = Result<T, DeserializeBodyError>;
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.
sourceimpl Response<MemberBody>
impl Response<MemberBody>
sourcepub fn model(self) -> MemberFutureⓘNotable traits for MemberFutureimpl Future for MemberFuture type Output = Result<Member, DeserializeBodyError>;
pub fn model(self) -> MemberFutureⓘNotable traits for MemberFutureimpl Future for MemberFuture type Output = Result<Member, DeserializeBodyError>;
Consume the response, chunking the body and then deserializing it into a member.
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 member.
sourceimpl Response<MemberListBody>
impl Response<MemberListBody>
sourcepub fn model(self) -> MemberListFutureⓘNotable traits for MemberListFutureimpl Future for MemberListFuture type Output = Result<Vec<Member>, DeserializeBodyError>;
pub fn model(self) -> MemberListFutureⓘNotable traits for MemberListFutureimpl Future for MemberListFuture type Output = Result<Vec<Member>, DeserializeBodyError>;
Consume the response, chunking the body and then deserializing it into a list of members.
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) -> MemberListFutureⓘNotable traits for MemberListFutureimpl Future for MemberListFuture type Output = Result<Vec<Member>, DeserializeBodyError>;
pub fn models(self) -> MemberListFutureⓘNotable traits for MemberListFutureimpl Future for MemberListFuture type Output = Result<Vec<Member>, DeserializeBodyError>;
Consume the response, chunking the body and then deserializing it into a list of members.
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 members.