changeset 129:0c1e788bda0c

gcs_example: Update to new Download API
author Lewin Bormann <lbo@spheniscida.de>
date Mon, 26 Oct 2020 10:44:20 +0100
parents 5ce43ba206c7
children 3db9fcf07b0a
files gcs_example/src/main.rs gcs_example/src/storage_v1_types.rs
diffstat 2 files changed, 66 insertions(+), 64 deletions(-) [+]
line wrap: on
line diff
--- a/gcs_example/src/main.rs	Mon Oct 26 10:44:05 2020 +0100
+++ b/gcs_example/src/main.rs	Mon Oct 26 10:44:20 2020 +0100
@@ -2,7 +2,6 @@
 
 use anyhow::Context;
 use async_google_apis_common as common;
-use chrono;
 use env_logger;
 
 use std::path::Path;
@@ -56,9 +55,14 @@
         .create(true)
         .open(id)
         .await?;
-    let result = cl.get(&params, Some(&mut f)).await?;
+    let mut download = cl.get(&params).await?;
 
-    println!("Downloaded object: {:?}", result);
+    // Now run the actual download.
+    let result = download.do_it(Some(&mut f)).await?;
+    match result {
+        common::DownloadResult::Downloaded => println!("Downloaded object successfully."),
+        common::DownloadResult::Response(_) => panic!("Received response but expected download."),
+    }
 
     Ok(())
 }
--- a/gcs_example/src/storage_v1_types.rs	Mon Oct 26 10:44:05 2020 +0100
+++ b/gcs_example/src/storage_v1_types.rs	Mon Oct 26 10:44:20 2020 +0100
@@ -4444,7 +4444,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -4483,7 +4483,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -4522,7 +4522,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -4561,7 +4561,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -4601,7 +4601,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -4642,7 +4642,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -4713,7 +4713,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -4748,7 +4748,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -4783,7 +4783,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -4815,7 +4815,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -4848,7 +4848,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -4886,7 +4886,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -4921,7 +4921,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -4961,7 +4961,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -5000,7 +5000,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -5035,7 +5035,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -5103,7 +5103,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -5175,7 +5175,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -5214,7 +5214,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -5253,7 +5253,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -5292,7 +5292,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -5332,7 +5332,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -5373,7 +5373,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -5445,7 +5445,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -5481,7 +5481,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -5520,7 +5520,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -5556,7 +5556,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -5628,7 +5628,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -5668,7 +5668,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -5708,7 +5708,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -5748,7 +5748,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -5789,7 +5789,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -5831,7 +5831,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -5909,7 +5909,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -5950,7 +5950,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -5987,7 +5987,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -6007,11 +6007,10 @@
     /// or a non-JSON type, the returned value indicates if a download took place or data was written to
     /// `dst`. If `dst` is `None` despite data being available for download, `ApiError::DataAvailableError`
     /// is returned.
-    pub async fn get(
-        &mut self,
+    pub async fn get<'a>(
+        &'a mut self,
         params: &ObjectsGetParams,
-        dst: Option<&mut (dyn tokio::io::AsyncWrite + std::marker::Unpin)>,
-    ) -> Result<DownloadResponse<Object>> {
+    ) -> Result<Download<'a, EmptyRequest, Object>> {
         let rel_path = format!(
             "b/{bucket}/o/{object}",
             bucket = percent_encode(params.bucket.as_bytes(), NON_ALPHANUMERIC),
@@ -6032,18 +6031,17 @@
         }
 
         let full_uri = path + &url_params;
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
 
         do_download(
             &self.client,
             &full_uri,
-            &[(
+            vec![(
                 hyper::header::AUTHORIZATION,
                 format!("Bearer {token}", token = tok.as_str()),
             )],
-            "GET",
+            "GET".into(),
             opt_request,
-            dst,
         )
         .await
     }
@@ -6070,7 +6068,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -6105,7 +6103,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -6149,7 +6147,7 @@
         }
 
         let full_uri = path + &url_params;
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
 
         do_upload_multipart(
@@ -6196,7 +6194,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         let (_resp, headers): (EmptyResponse, hyper::HeaderMap) = do_request_with_headers(
             &self.client,
@@ -6246,7 +6244,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -6282,7 +6280,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -6319,7 +6317,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -6360,7 +6358,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -6400,7 +6398,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -6436,7 +6434,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -6476,7 +6474,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -6582,7 +6580,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -6618,7 +6616,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -6654,7 +6652,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -6689,7 +6687,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,
@@ -6729,7 +6727,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         let opt_request = Some(req);
         do_request(
             &self.client,
@@ -6803,7 +6801,7 @@
 
         let full_uri = path + &url_params;
 
-        let opt_request: Option<EmptyRequest> = None;
+        let opt_request: Option<&EmptyRequest> = None;
         do_request(
             &self.client,
             &full_uri,