Struct async_google_apis_common::Download
source · 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.