pub struct Download<'a, Request, Response> { /* private fields */ }
Expand description
An ongoing download.
Note that this does not necessarily result in a download. It is returned by all API methods
that are capable of downloading data. Whether a download takes place is determined by the
Content-Type
sent by the server; frequently, the parameters sent in the request determine
whether the server starts a download (Content-Type: whatever
) or sends a response
(Content-Type: application/json
).
Implementations§
Source§impl<'a, Request: Serialize + Debug, Response: DeserializeOwned + Debug> Download<'a, Request, Response>
impl<'a, Request: Serialize + Debug, Response: DeserializeOwned + Debug> Download<'a, Request, Response>
Sourcepub async fn do_it_to_buf(
&mut self,
buf: &mut Vec<u8>,
) -> Result<DownloadResult<Response>>
pub async fn do_it_to_buf( &mut self, buf: &mut Vec<u8>, ) -> Result<DownloadResult<Response>>
Trivial adapter for download()
: Store downloaded data into a Vec<u8>
.
Sourcepub async fn do_it(
&mut self,
dst: Option<&mut dyn AsyncWriteUnpin>,
) -> Result<DownloadResult<Response>>
pub async fn do_it( &mut self, dst: Option<&mut dyn AsyncWriteUnpin>, ) -> Result<DownloadResult<Response>>
Run the actual download, streaming the response into the supplied dst
. If the server
responded with a Response
object, no download is started; the response is wrapped in the
DownloadResult<Response>
object.
Whether a download takes place or you receive a structured Response
(i.e. a JSON object)
depends on the Content-Type
sent by the server. It is an error to attempt a download
without specifying dst
. Often, whether a download takes place is influenced by the
request parameters. For example, alt = media
is frequently used in Google APIs to
indicate that a download is expected.
Auto Trait Implementations§
impl<'a, Request, Response> !Freeze for Download<'a, Request, Response>
impl<'a, Request, Response> !RefUnwindSafe for Download<'a, Request, Response>
impl<'a, Request, Response> Send for Download<'a, Request, Response>
impl<'a, Request, Response> Sync for Download<'a, Request, Response>
impl<'a, Request, Response> Unpin for Download<'a, Request, Response>where
Response: Unpin,
impl<'a, Request, Response> !UnwindSafe for Download<'a, Request, Response>
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more