Created
October 4, 2019 18:45
-
-
Save Nashenas88/f39c143daf2147d3d599ec78c5f6c961 to your computer and use it in GitHub Desktop.
futures mutex guard send error
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
error[E0277]: `std::sync::MutexGuard<'_, rusoto_s3::generated::S3Client>` cannot be sent between threads safely | |
--> src/main.rs:604:14 | |
| | |
604 | .boxed() | |
| ^^^^^ `std::sync::MutexGuard<'_, rusoto_s3::generated::S3Client>` cannot be sent between threads safely | |
| | |
= help: within `impl core::future::future::Future`, the trait `std::marker::Send` is not implemented for `std::sync::MutexGuard<'_, rusoto_s3::generated::S3Client>` | |
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47, 't48, 't49, 't50, 't51> {std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &'r str, gcs::Bucket, &'s gcs::GCSCredentialProvider<'t0>, &'t1 str, u64, &'t2 mut indicatif::progress::ProgressBar, fn(std::result::Result<rusoto_s3::generated::GetObjectOutput, failure::error::Error>) -> std::result::Result<<std::result::Result<rusoto_s3::generated::GetObjectOutput, failure::error::Error> as std::ops::Try>::Ok, <std::result::Result<rusoto_s3::generated::GetObjectOutput, failure::error::Error> as std::ops::Try>::Error> {<std::result::Result<rusoto_s3::generated::GetObjectOutput, failure::error::Error> as std::ops::Try>::into_result}, &'t3 std::sync::Mutex<rusoto_s3::generated::S3Client>, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::result::Result<std::sync::MutexGuard<'t4, rusoto_s3::generated::S3Client>, std::sync::PoisonError<std::sync::MutexGuard<'t5, rusoto_s3::generated::S3Client>>>, &'t6 rusoto_s3::generated::S3Client, std::sync::MutexGuard<'t7, rusoto_s3::generated::S3Client>, &'t8 str, &'t9 str, std::string::String, &'t10 str, &'t11 str, std::string::String, fn() -> rusoto_s3::generated::GetObjectRequest {<rusoto_s3::generated::GetObjectRequest as std::default::Default>::default}, rusoto_s3::generated::GetObjectRequest, rusoto_s3::generated::GetObjectRequest, rusoto_core::future::RusotoFuture<rusoto_s3::generated::GetObjectOutput, rusoto_s3::generated::GetObjectError>, futures_util::compat::compat01as03::Compat01As03<rusoto_core::future::RusotoFuture<rusoto_s3::generated::GetObjectOutput, rusoto_s3::generated::GetObjectError>>, futures_util::compat::compat01as03::Compat01As03<rusoto_core::future::RusotoFuture<rusoto_s3::generated::GetObjectOutput, rusoto_s3::generated::GetObjectError>>, (), rusoto_s3::generated::GetObjectOutput, u64, rusoto_core::stream::ByteStream, fn(std::result::Result<std::vec::Vec<bytes::bytes::Bytes>, failure::error::Error>) -> std::result::Result<<std::result::Result<std::vec::Vec<bytes::bytes::Bytes>, failure::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::vec::Vec<bytes::bytes::Bytes>, failure::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::vec::Vec<bytes::bytes::Bytes>, failure::error::Error> as std::ops::Try>::into_result}, rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t12 u64, downloaded:&'t13 mut u64, pb:&'t14 &'t15 mut indicatif::progress::ProgressBar], futures::stream::inspect::Inspect<rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t16 u64, downloaded:&'t17 mut u64, pb:&'t18 &'t19 mut indicatif::progress::ProgressBar]>, futures::stream::collect::Collect<futures::stream::inspect::Inspect<rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t20 u64, downloaded:&'t21 mut u64, pb:&'t22 &'t23 mut indicatif::progress::ProgressBar]>>, futures_util::compat::compat01as03::Compat01As03<futures::stream::collect::Collect<futures::stream::inspect::Inspect<rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t24 u64, downloaded:&'t25 mut u64, pb:&'t26 &'t27 mut indicatif::progress::ProgressBar]>>>, futures_util::compat::compat01as03::Compat01As03<futures::stream::collect::Collect<futures::stream::inspect::Inspect<rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t28 u64, downloaded:&'t29 mut u64, pb:&'t30 &'t31 mut indicatif::progress::ProgressBar]>>>, (), std::vec::Vec<bytes::bytes::Bytes>, std::vec::Vec<u8>, &'t32 gcs::Bucket, gcs::Bucket, &'t33 str, &'t34 str, &'t35 &'t36 str, u64, std::vec::Vec<u8>, &'t37 gcs::GCSCredentialProvider<'t38>, &'t39 gcs::GCSCredentialProvider<'t40>, &'t41 &'t42 gcs::GCSCredentialProvider<'t43>, impl core::future::future::Future, impl core::future::future::Future, ()}` | |
= note: required because it appears within the type `[static generator@src/main.rs:619:17: 646:2 s3_client:std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, s3_bucket_name:&str, gcs_bucket:gcs::Bucket, cred_provider:&gcs::GCSCredentialProvider<'_>, key:&str, size:u64, pb:&mut indicatif::progress::ProgressBar for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47, 't48, 't49, 't50, 't51> {std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &'r str, gcs::Bucket, &'s gcs::GCSCredentialProvider<'t0>, &'t1 str, u64, &'t2 mut indicatif::progress::ProgressBar, fn(std::result::Result<rusoto_s3::generated::GetObjectOutput, failure::error::Error>) -> std::result::Result<<std::result::Result<rusoto_s3::generated::GetObjectOutput, failure::error::Error> as std::ops::Try>::Ok, <std::result::Result<rusoto_s3::generated::GetObjectOutput, failure::error::Error> as std::ops::Try>::Error> {<std::result::Result<rusoto_s3::generated::GetObjectOutput, failure::error::Error> as std::ops::Try>::into_result}, &'t3 std::sync::Mutex<rusoto_s3::generated::S3Client>, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::result::Result<std::sync::MutexGuard<'t4, rusoto_s3::generated::S3Client>, std::sync::PoisonError<std::sync::MutexGuard<'t5, rusoto_s3::generated::S3Client>>>, &'t6 rusoto_s3::generated::S3Client, std::sync::MutexGuard<'t7, rusoto_s3::generated::S3Client>, &'t8 str, &'t9 str, std::string::String, &'t10 str, &'t11 str, std::string::String, fn() -> rusoto_s3::generated::GetObjectRequest {<rusoto_s3::generated::GetObjectRequest as std::default::Default>::default}, rusoto_s3::generated::GetObjectRequest, rusoto_s3::generated::GetObjectRequest, rusoto_core::future::RusotoFuture<rusoto_s3::generated::GetObjectOutput, rusoto_s3::generated::GetObjectError>, futures_util::compat::compat01as03::Compat01As03<rusoto_core::future::RusotoFuture<rusoto_s3::generated::GetObjectOutput, rusoto_s3::generated::GetObjectError>>, futures_util::compat::compat01as03::Compat01As03<rusoto_core::future::RusotoFuture<rusoto_s3::generated::GetObjectOutput, rusoto_s3::generated::GetObjectError>>, (), rusoto_s3::generated::GetObjectOutput, u64, rusoto_core::stream::ByteStream, fn(std::result::Result<std::vec::Vec<bytes::bytes::Bytes>, failure::error::Error>) -> std::result::Result<<std::result::Result<std::vec::Vec<bytes::bytes::Bytes>, failure::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::vec::Vec<bytes::bytes::Bytes>, failure::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::vec::Vec<bytes::bytes::Bytes>, failure::error::Error> as std::ops::Try>::into_result}, rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t12 u64, downloaded:&'t13 mut u64, pb:&'t14 &'t15 mut indicatif::progress::ProgressBar], futures::stream::inspect::Inspect<rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t16 u64, downloaded:&'t17 mut u64, pb:&'t18 &'t19 mut indicatif::progress::ProgressBar]>, futures::stream::collect::Collect<futures::stream::inspect::Inspect<rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t20 u64, downloaded:&'t21 mut u64, pb:&'t22 &'t23 mut indicatif::progress::ProgressBar]>>, futures_util::compat::compat01as03::Compat01As03<futures::stream::collect::Collect<futures::stream::inspect::Inspect<rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t24 u64, downloaded:&'t25 mut u64, pb:&'t26 &'t27 mut indicatif::progress::ProgressBar]>>>, futures_util::compat::compat01as03::Compat01As03<futures::stream::collect::Collect<futures::stream::inspect::Inspect<rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t28 u64, downloaded:&'t29 mut u64, pb:&'t30 &'t31 mut indicatif::progress::ProgressBar]>>>, (), std::vec::Vec<bytes::bytes::Bytes>, std::vec::Vec<u8>, &'t32 gcs::Bucket, gcs::Bucket, &'t33 str, &'t34 str, &'t35 &'t36 str, u64, std::vec::Vec<u8>, &'t37 gcs::GCSCredentialProvider<'t38>, &'t39 gcs::GCSCredentialProvider<'t40>, &'t41 &'t42 gcs::GCSCredentialProvider<'t43>, impl core::future::future::Future, impl core::future::future::Future, ()}]` | |
= note: required because it appears within the type `std::future::GenFuture<[static generator@src/main.rs:619:17: 646:2 s3_client:std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, s3_bucket_name:&str, gcs_bucket:gcs::Bucket, cred_provider:&gcs::GCSCredentialProvider<'_>, key:&str, size:u64, pb:&mut indicatif::progress::ProgressBar for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47, 't48, 't49, 't50, 't51> {std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &'r str, gcs::Bucket, &'s gcs::GCSCredentialProvider<'t0>, &'t1 str, u64, &'t2 mut indicatif::progress::ProgressBar, fn(std::result::Result<rusoto_s3::generated::GetObjectOutput, failure::error::Error>) -> std::result::Result<<std::result::Result<rusoto_s3::generated::GetObjectOutput, failure::error::Error> as std::ops::Try>::Ok, <std::result::Result<rusoto_s3::generated::GetObjectOutput, failure::error::Error> as std::ops::Try>::Error> {<std::result::Result<rusoto_s3::generated::GetObjectOutput, failure::error::Error> as std::ops::Try>::into_result}, &'t3 std::sync::Mutex<rusoto_s3::generated::S3Client>, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::result::Result<std::sync::MutexGuard<'t4, rusoto_s3::generated::S3Client>, std::sync::PoisonError<std::sync::MutexGuard<'t5, rusoto_s3::generated::S3Client>>>, &'t6 rusoto_s3::generated::S3Client, std::sync::MutexGuard<'t7, rusoto_s3::generated::S3Client>, &'t8 str, &'t9 str, std::string::String, &'t10 str, &'t11 str, std::string::String, fn() -> rusoto_s3::generated::GetObjectRequest {<rusoto_s3::generated::GetObjectRequest as std::default::Default>::default}, rusoto_s3::generated::GetObjectRequest, rusoto_s3::generated::GetObjectRequest, rusoto_core::future::RusotoFuture<rusoto_s3::generated::GetObjectOutput, rusoto_s3::generated::GetObjectError>, futures_util::compat::compat01as03::Compat01As03<rusoto_core::future::RusotoFuture<rusoto_s3::generated::GetObjectOutput, rusoto_s3::generated::GetObjectError>>, futures_util::compat::compat01as03::Compat01As03<rusoto_core::future::RusotoFuture<rusoto_s3::generated::GetObjectOutput, rusoto_s3::generated::GetObjectError>>, (), rusoto_s3::generated::GetObjectOutput, u64, rusoto_core::stream::ByteStream, fn(std::result::Result<std::vec::Vec<bytes::bytes::Bytes>, failure::error::Error>) -> std::result::Result<<std::result::Result<std::vec::Vec<bytes::bytes::Bytes>, failure::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::vec::Vec<bytes::bytes::Bytes>, failure::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::vec::Vec<bytes::bytes::Bytes>, failure::error::Error> as std::ops::Try>::into_result}, rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t12 u64, downloaded:&'t13 mut u64, pb:&'t14 &'t15 mut indicatif::progress::ProgressBar], futures::stream::inspect::Inspect<rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t16 u64, downloaded:&'t17 mut u64, pb:&'t18 &'t19 mut indicatif::progress::ProgressBar]>, futures::stream::collect::Collect<futures::stream::inspect::Inspect<rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t20 u64, downloaded:&'t21 mut u64, pb:&'t22 &'t23 mut indicatif::progress::ProgressBar]>>, futures_util::compat::compat01as03::Compat01As03<futures::stream::collect::Collect<futures::stream::inspect::Inspect<rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t24 u64, downloaded:&'t25 mut u64, pb:&'t26 &'t27 mut indicatif::progress::ProgressBar]>>>, futures_util::compat::compat01as03::Compat01As03<futures::stream::collect::Collect<futures::stream::inspect::Inspect<rusoto_core::stream::ByteStream, [closure@src/main.rs:634:29: 637:6 size:&'t28 u64, downloaded:&'t29 mut u64, pb:&'t30 &'t31 mut indicatif::progress::ProgressBar]>>>, (), std::vec::Vec<bytes::bytes::Bytes>, std::vec::Vec<u8>, &'t32 gcs::Bucket, gcs::Bucket, &'t33 str, &'t34 str, &'t35 &'t36 str, u64, std::vec::Vec<u8>, &'t37 gcs::GCSCredentialProvider<'t38>, &'t39 gcs::GCSCredentialProvider<'t40>, &'t41 &'t42 gcs::GCSCredentialProvider<'t43>, impl core::future::future::Future, impl core::future::future::Future, ()}]>` | |
= note: required because it appears within the type `impl core::future::future::Future` | |
= note: required because it appears within the type `impl core::future::future::Future` | |
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47> {std::string::String, bool, bool, for<'_, '_, 'f, '_, '_> fn(std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &str, gcs::Bucket, &gcs::GCSCredentialProvider<'f>, &str, u64, &mut indicatif::progress::ProgressBar) -> impl core::future::future::Future {copy_over}, for<'t48> fn(&'t48 std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>) -> std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>> {<std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>> as std::clone::Clone>::clone}, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &'r std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &'s std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::string::String, &'t0 str, &'t1 std::string::String, &'t2 gcs::Bucket, gcs::Bucket, gcs::Bucket, std::sync::Arc<gcs::GCSCredentialProvider<'t3>>, &'t4 gcs::GCSCredentialProvider<'t5>, &'t6 std::sync::Arc<gcs::GCSCredentialProvider<'t7>>, std::string::String, &'t8 str, &'t9 std::string::String, i64, u64, indicatif::progress::ProgressBar, &'t10 mut indicatif::progress::ProgressBar, &'t11 mut indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<(), failure::error::Error>, std::result::Result<(), failure::error::Error>, failure::error::Error, std::string::String, failure::error::Error, std::result::Result<rusoto_core::error::RusotoError<rusoto_s3::generated::GetObjectError>, failure::error::Error>, std::string::String, for<'_, '_, 'f, '_, '_> fn(std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &str, gcs::Bucket, &gcs::GCSCredentialProvider<'f>, &str, u64, &mut indicatif::progress::ProgressBar) -> impl core::future::future::Future {copy_over}, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::string::String, &'t22 str, &'t23 std::string::String, gcs::Bucket, std::sync::Arc<gcs::GCSCredentialProvider<'t24>>, &'t25 gcs::GCSCredentialProvider<'t26>, &'t27 std::sync::Arc<gcs::GCSCredentialProvider<'t28>>, std::string::String, &'t29 str, &'t30 std::string::String, i64, u64, indicatif::progress::ProgressBar, &'t31 mut indicatif::progress::ProgressBar, &'t32 mut indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, (), for<'_> fn(std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::string::String, std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, std::string::String, u64, &mut indicatif::progress::ProgressBar) -> impl core::future::future::Future {download_and_compare}, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::string::String, std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, &'t43 std::string::String, std::string::String, std::string::String, i64, u64, indicatif::progress::ProgressBar, &'t44 mut indicatif::progress::ProgressBar, &'t45 mut indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, ()}` | |
= note: required because it appears within the type `[static generator@src/main.rs:518:28: 583:18 total_spawned_cloned:std::sync::Arc<std::sync::atomic::AtomicUsize>, key:std::string::String, should_sync:bool, fut_s3_client:std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, fut_bucket_name:std::string::String, fut_gcs_bucket:gcs::Bucket, cred_provider:std::sync::Arc<gcs::GCSCredentialProvider<'_>>, size:i64, pb:indicatif::progress::ProgressBar, fut_total_failures:std::sync::Arc<std::sync::atomic::AtomicUsize>, progress_bars:std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, fut_validated:std::sync::Arc<std::sync::atomic::AtomicUsize>, fut_all_gcs_keys:std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, tx:std::sync::mpsc::Sender<Completed>, count_pb:std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47> {std::string::String, bool, bool, for<'_, '_, 'f, '_, '_> fn(std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &str, gcs::Bucket, &gcs::GCSCredentialProvider<'f>, &str, u64, &mut indicatif::progress::ProgressBar) -> impl core::future::future::Future {copy_over}, for<'t48> fn(&'t48 std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>) -> std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>> {<std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>> as std::clone::Clone>::clone}, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &'r std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &'s std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::string::String, &'t0 str, &'t1 std::string::String, &'t2 gcs::Bucket, gcs::Bucket, gcs::Bucket, std::sync::Arc<gcs::GCSCredentialProvider<'t3>>, &'t4 gcs::GCSCredentialProvider<'t5>, &'t6 std::sync::Arc<gcs::GCSCredentialProvider<'t7>>, std::string::String, &'t8 str, &'t9 std::string::String, i64, u64, indicatif::progress::ProgressBar, &'t10 mut indicatif::progress::ProgressBar, &'t11 mut indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<(), failure::error::Error>, std::result::Result<(), failure::error::Error>, failure::error::Error, std::string::String, failure::error::Error, std::result::Result<rusoto_core::error::RusotoError<rusoto_s3::generated::GetObjectError>, failure::error::Error>, std::string::String, for<'_, '_, 'f, '_, '_> fn(std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &str, gcs::Bucket, &gcs::GCSCredentialProvider<'f>, &str, u64, &mut indicatif::progress::ProgressBar) -> impl core::future::future::Future {copy_over}, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::string::String, &'t22 str, &'t23 std::string::String, gcs::Bucket, std::sync::Arc<gcs::GCSCredentialProvider<'t24>>, &'t25 gcs::GCSCredentialProvider<'t26>, &'t27 std::sync::Arc<gcs::GCSCredentialProvider<'t28>>, std::string::String, &'t29 str, &'t30 std::string::String, i64, u64, indicatif::progress::ProgressBar, &'t31 mut indicatif::progress::ProgressBar, &'t32 mut indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, (), for<'_> fn(std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::string::String, std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, std::string::String, u64, &mut indicatif::progress::ProgressBar) -> impl core::future::future::Future {download_and_compare}, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::string::String, std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, &'t43 std::string::String, std::string::String, std::string::String, i64, u64, indicatif::progress::ProgressBar, &'t44 mut indicatif::progress::ProgressBar, &'t45 mut indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, ()}]` | |
= note: required because it appears within the type `std::future::GenFuture<[static generator@src/main.rs:518:28: 583:18 total_spawned_cloned:std::sync::Arc<std::sync::atomic::AtomicUsize>, key:std::string::String, should_sync:bool, fut_s3_client:std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, fut_bucket_name:std::string::String, fut_gcs_bucket:gcs::Bucket, cred_provider:std::sync::Arc<gcs::GCSCredentialProvider<'_>>, size:i64, pb:indicatif::progress::ProgressBar, fut_total_failures:std::sync::Arc<std::sync::atomic::AtomicUsize>, progress_bars:std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, fut_validated:std::sync::Arc<std::sync::atomic::AtomicUsize>, fut_all_gcs_keys:std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, tx:std::sync::mpsc::Sender<Completed>, count_pb:std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47> {std::string::String, bool, bool, for<'_, '_, 'f, '_, '_> fn(std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &str, gcs::Bucket, &gcs::GCSCredentialProvider<'f>, &str, u64, &mut indicatif::progress::ProgressBar) -> impl core::future::future::Future {copy_over}, for<'t48> fn(&'t48 std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>) -> std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>> {<std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>> as std::clone::Clone>::clone}, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &'r std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &'s std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::string::String, &'t0 str, &'t1 std::string::String, &'t2 gcs::Bucket, gcs::Bucket, gcs::Bucket, std::sync::Arc<gcs::GCSCredentialProvider<'t3>>, &'t4 gcs::GCSCredentialProvider<'t5>, &'t6 std::sync::Arc<gcs::GCSCredentialProvider<'t7>>, std::string::String, &'t8 str, &'t9 std::string::String, i64, u64, indicatif::progress::ProgressBar, &'t10 mut indicatif::progress::ProgressBar, &'t11 mut indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<(), failure::error::Error>, std::result::Result<(), failure::error::Error>, failure::error::Error, std::string::String, failure::error::Error, std::result::Result<rusoto_core::error::RusotoError<rusoto_s3::generated::GetObjectError>, failure::error::Error>, std::string::String, for<'_, '_, 'f, '_, '_> fn(std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, &str, gcs::Bucket, &gcs::GCSCredentialProvider<'f>, &str, u64, &mut indicatif::progress::ProgressBar) -> impl core::future::future::Future {copy_over}, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::string::String, &'t22 str, &'t23 std::string::String, gcs::Bucket, std::sync::Arc<gcs::GCSCredentialProvider<'t24>>, &'t25 gcs::GCSCredentialProvider<'t26>, &'t27 std::sync::Arc<gcs::GCSCredentialProvider<'t28>>, std::string::String, &'t29 str, &'t30 std::string::String, i64, u64, indicatif::progress::ProgressBar, &'t31 mut indicatif::progress::ProgressBar, &'t32 mut indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, (), for<'_> fn(std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::string::String, std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, std::string::String, u64, &mut indicatif::progress::ProgressBar) -> impl core::future::future::Future {download_and_compare}, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::string::String, std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, &'t43 std::string::String, std::string::String, std::string::String, i64, u64, indicatif::progress::ProgressBar, &'t44 mut indicatif::progress::ProgressBar, &'t45 mut indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, ()}]>` | |
= note: required because it appears within the type `impl core::future::future::Future` | |
= note: required because of the requirements on the impl of `std::marker::Send` for `futures_util::stream::futures_unordered::FuturesUnordered<impl core::future::future::Future>` | |
= note: required because it appears within the type `futures_util::stream::for_each_concurrent::ForEachConcurrent<futures_util::stream::iter::Iter<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>>, impl core::future::future::Future, [closure@src/main.rs:488:96: 584:14 cred_provider:&std::sync::Arc<gcs::GCSCredentialProvider<'_>>, s3_client:&std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, gcs_bucket:&gcs::Bucket, s3_bucket_name:&std::string::String, all_gcs_keys:&std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, validated:&std::sync::Arc<std::sync::atomic::AtomicUsize>, total_failures:&std::sync::Arc<std::sync::atomic::AtomicUsize>, tx:&std::sync::Arc<std::sync::Mutex<std::sync::mpsc::Sender<Completed>>>, total_spawned_cloned:&std::sync::Arc<std::sync::atomic::AtomicUsize>, count_pb:&std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>>, progress_bars:&std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, padding:&usize, should_sync:&bool]>` | |
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47, 't48, 't49, 't50, 't51, 't52, 't53, 't54, 't55, 't56, 't57, 't58, 't59, 't60, 't61, 't62, 't63, 't64, 't65, 't66, 't67, 't68, 't69, 't70, 't71, 't72, 't73, 't74, 't75, 't76, 't77, 't78, 't79, 't80, 't81, 't82, 't83, 't84, 't85, 't86, 't87, 't88, 't89, 't90, 't91> {bool, bool, for<'_, '_, '_> fn(&gcs::Bucket, &gcs::GCSCredentialProvider<'_>) -> impl core::future::future::Future {fix_missing}, gcs::Bucket, &'r gcs::Bucket, &'s gcs::Bucket, gcs::GCSCredentialProvider<'t0>, &'t1 gcs::GCSCredentialProvider<'t2>, &'t3 gcs::GCSCredentialProvider<'t4>, impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<(), failure::error::Error>, for<'_, '_, '_> fn(&gcs::Bucket, &gcs::GCSCredentialProvider<'_>) -> impl core::future::future::Future {cleanup_to_delete}, gcs::Bucket, &'t11 gcs::Bucket, &'t12 gcs::Bucket, gcs::GCSCredentialProvider<'t13>, &'t14 gcs::GCSCredentialProvider<'t15>, &'t16 gcs::GCSCredentialProvider<'t17>, impl core::future::future::Future, impl core::future::future::Future, (), std::collections::HashMap<std::string::String, std::string::String>, std::option::Option<GCSCachedMetadata>, std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>, std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>, fn(std::result::Result<std::collections::HashMap<std::string::String, std::string::String>, failure::error::Error>) -> std::result::Result<<std::result::Result<std::collections::HashMap<std::string::String, std::string::String>, failure::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::collections::HashMap<std::string::String, std::string::String>, failure::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::collections::HashMap<std::string::String, std::string::String>, failure::error::Error> as std::ops::Try>::into_result}, fn([static generator@src/main.rs:340:138: 349:18 gcs_bucket:&'t24 gcs::Bucket, cred_provider:&'t25 gcs::GCSCredentialProvider<'t26> for<'t92, 't93, 't94, 't95, 't96, 't97, 't98, 't99> {indicatif::progress::ProgressBar, &'t92 gcs::Bucket, gcs::Bucket, gcs::GCSCredentialProvider<'t93>, &'t94 gcs::GCSCredentialProvider<'t95>, &'t96 gcs::GCSCredentialProvider<'t97>, indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, ()}]) -> impl core::future::future::Future {std::future::from_generator::<[static generator@src/main.rs:340:138: 349:18 gcs_bucket:&'t24 gcs::Bucket, cred_provider:&'t25 gcs::GCSCredentialProvider<'t26> for<'t92, 't93, 't94, 't95, 't96, 't97, 't98, 't99> {indicatif::progress::ProgressBar, &'t92 gcs::Bucket, gcs::Bucket, gcs::GCSCredentialProvider<'t93>, &'t94 gcs::GCSCredentialProvider<'t95>, &'t96 gcs::GCSCredentialProvider<'t97>, indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, ()}]>}, [static generator@src/main.rs:340:138: 349:18 gcs_bucket:&'t27 gcs::Bucket, cred_provider:&'t28 gcs::GCSCredentialProvider<'t29> for<'t92, 't93, 't94, 't95, 't96, 't97, 't98, 't99> {indicatif::progress::ProgressBar, &'t92 gcs::Bucket, gcs::Bucket, gcs::GCSCredentialProvider<'t93>, &'t94 gcs::GCSCredentialProvider<'t95>, &'t96 gcs::GCSCredentialProvider<'t97>, indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::collections::HashMap<std::string::String, std::string::String>, std::vec::Vec<(gcs::Fix, i64)>, std::option::Option<S3CachedMetadata>, std::option::Option<std::vec::Vec<(gcs::Fix, i64)>>, std::option::Option<std::vec::Vec<(gcs::Fix, i64)>>, fn(std::result::Result<std::vec::Vec<(gcs::Fix, i64)>, failure::error::Error>) -> std::result::Result<<std::result::Result<std::vec::Vec<(gcs::Fix, i64)>, failure::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::vec::Vec<(gcs::Fix, i64)>, failure::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::vec::Vec<(gcs::Fix, i64)>, failure::error::Error> as std::ops::Try>::into_result}, fn([static generator@src/main.rs:361:127: 369:18 s3_client:&'t36 rusoto_s3::generated::S3Client, s3_bucket_name:&'t37 std::string::String {}]) -> impl core::future::future::Future {std::future::from_generator::<[static generator@src/main.rs:361:127: 369:18 s3_client:&'t36 rusoto_s3::generated::S3Client, s3_bucket_name:&'t37 std::string::String {}]>}, [static generator@src/main.rs:361:127: 369:18 s3_client:&'t38 rusoto_s3::generated::S3Client, s3_bucket_name:&'t39 std::string::String {}], impl core::future::future::Future, impl core::future::future::Future, (), std::vec::Vec<(gcs::Fix, i64)>, std::vec::Vec<gcs::Fix>, std::collections::HashSet<std::string::String>, std::vec::Vec<std::string::String>, std::vec::Vec<(std::string::String, i64)>, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, std::sync::Arc<gcs::GCSCredentialProvider<'t44>>, std::sync::Arc<std::sync::atomic::AtomicUsize>, std::sync::Arc<std::sync::Mutex<std::sync::mpsc::Sender<Completed>>>, indicatif::progress::MultiProgress, indicatif::progress::ProgressBar, indicatif::style::ProgressStyle, usize, std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>, std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>>, std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, std::thread::JoinHandle<()>, usize, fn(std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>) -> futures_util::stream::iter::Iter<<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>> as std::iter::IntoIterator>::IntoIter> {futures_util::stream::iter::iter::<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>>}, std::vec::Vec<(std::string::String, i64)>, std::vec::IntoIter<(std::string::String, i64)>, std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>, futures_util::stream::iter::Iter<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>>, usize, [closure@src/main.rs:488:96: 584:14 cred_provider:&'t46 std::sync::Arc<gcs::GCSCredentialProvider<'t47>>, s3_client:&'t48 std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, gcs_bucket:&'t49 gcs::Bucket, s3_bucket_name:&'t50 std::string::String, all_gcs_keys:&'t51 std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, validated:&'t52 std::sync::Arc<std::sync::atomic::AtomicUsize>, total_failures:&'t53 std::sync::Arc<std::sync::atomic::AtomicUsize>, tx:&'t54 std::sync::Arc<std::sync::Mutex<std::sync::mpsc::Sender<Completed>>>, total_spawned_cloned:&'t55 std::sync::Arc<std::sync::atomic::AtomicUsize>, count_pb:&'t56 std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>>, progress_bars:&'t57 std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, padding:&'t58 usize, should_sync:&'t59 bool], futures_util::stream::for_each_concurrent::ForEachConcurrent<futures_util::stream::iter::Iter<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>>, impl core::future::future::Future, [closure@src/main.rs:488:96: 584:14 cred_provider:&'t62 std::sync::Arc<gcs::GCSCredentialProvider<'t63>>, s3_client:&'t64 std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, gcs_bucket:&'t65 gcs::Bucket, s3_bucket_name:&'t66 std::string::String, all_gcs_keys:&'t67 std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, validated:&'t68 std::sync::Arc<std::sync::atomic::AtomicUsize>, total_failures:&'t69 std::sync::Arc<std::sync::atomic::AtomicUsize>, tx:&'t70 std::sync::Arc<std::sync::Mutex<std::sync::mpsc::Sender<Completed>>>, total_spawned_cloned:&'t71 std::sync::Arc<std::sync::atomic::AtomicUsize>, count_pb:&'t72 std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>>, progress_bars:&'t73 std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, padding:&'t74 usize, should_sync:&'t75 bool]>, futures_util::stream::for_each_concurrent::ForEachConcurrent<futures_util::stream::iter::Iter<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>>, impl core::future::future::Future, [closure@src/main.rs:488:96: 584:14 cred_provider:&'t78 std::sync::Arc<gcs::GCSCredentialProvider<'t79>>, s3_client:&'t80 std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, gcs_bucket:&'t81 gcs::Bucket, s3_bucket_name:&'t82 std::string::String, all_gcs_keys:&'t83 std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, validated:&'t84 std::sync::Arc<std::sync::atomic::AtomicUsize>, total_failures:&'t85 std::sync::Arc<std::sync::atomic::AtomicUsize>, tx:&'t86 std::sync::Arc<std::sync::Mutex<std::sync::mpsc::Sender<Completed>>>, total_spawned_cloned:&'t87 std::sync::Arc<std::sync::atomic::AtomicUsize>, count_pb:&'t88 std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>>, progress_bars:&'t89 std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, padding:&'t90 usize, should_sync:&'t91 bool]>, ()}` | |
= note: required because it appears within the type `[static generator@src/main.rs:330:20: 602:10 should_fix:bool, gcs_bucket:gcs::Bucket, cred_provider:gcs::GCSCredentialProvider<'_>, should_sync:bool, s3_bucket_name:std::string::String, s3_client:rusoto_s3::generated::S3Client, completed:std::collections::HashSet<std::string::String>, validated:std::sync::Arc<std::sync::atomic::AtomicUsize>, total_spawned:std::sync::Arc<std::sync::atomic::AtomicUsize>, tx:std::sync::mpsc::Sender<Completed>, total_failures:std::sync::Arc<std::sync::atomic::AtomicUsize> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47, 't48, 't49, 't50, 't51, 't52, 't53, 't54, 't55, 't56, 't57, 't58, 't59, 't60, 't61, 't62, 't63, 't64, 't65, 't66, 't67, 't68, 't69, 't70, 't71, 't72, 't73, 't74, 't75, 't76, 't77, 't78, 't79, 't80, 't81, 't82, 't83, 't84, 't85, 't86, 't87, 't88, 't89, 't90, 't91> {bool, bool, for<'_, '_, '_> fn(&gcs::Bucket, &gcs::GCSCredentialProvider<'_>) -> impl core::future::future::Future {fix_missing}, gcs::Bucket, &'r gcs::Bucket, &'s gcs::Bucket, gcs::GCSCredentialProvider<'t0>, &'t1 gcs::GCSCredentialProvider<'t2>, &'t3 gcs::GCSCredentialProvider<'t4>, impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<(), failure::error::Error>, for<'_, '_, '_> fn(&gcs::Bucket, &gcs::GCSCredentialProvider<'_>) -> impl core::future::future::Future {cleanup_to_delete}, gcs::Bucket, &'t11 gcs::Bucket, &'t12 gcs::Bucket, gcs::GCSCredentialProvider<'t13>, &'t14 gcs::GCSCredentialProvider<'t15>, &'t16 gcs::GCSCredentialProvider<'t17>, impl core::future::future::Future, impl core::future::future::Future, (), std::collections::HashMap<std::string::String, std::string::String>, std::option::Option<GCSCachedMetadata>, std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>, std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>, fn(std::result::Result<std::collections::HashMap<std::string::String, std::string::String>, failure::error::Error>) -> std::result::Result<<std::result::Result<std::collections::HashMap<std::string::String, std::string::String>, failure::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::collections::HashMap<std::string::String, std::string::String>, failure::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::collections::HashMap<std::string::String, std::string::String>, failure::error::Error> as std::ops::Try>::into_result}, fn([static generator@src/main.rs:340:138: 349:18 gcs_bucket:&'t24 gcs::Bucket, cred_provider:&'t25 gcs::GCSCredentialProvider<'t26> for<'t92, 't93, 't94, 't95, 't96, 't97, 't98, 't99> {indicatif::progress::ProgressBar, &'t92 gcs::Bucket, gcs::Bucket, gcs::GCSCredentialProvider<'t93>, &'t94 gcs::GCSCredentialProvider<'t95>, &'t96 gcs::GCSCredentialProvider<'t97>, indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, ()}]) -> impl core::future::future::Future {std::future::from_generator::<[static generator@src/main.rs:340:138: 349:18 gcs_bucket:&'t24 gcs::Bucket, cred_provider:&'t25 gcs::GCSCredentialProvider<'t26> for<'t92, 't93, 't94, 't95, 't96, 't97, 't98, 't99> {indicatif::progress::ProgressBar, &'t92 gcs::Bucket, gcs::Bucket, gcs::GCSCredentialProvider<'t93>, &'t94 gcs::GCSCredentialProvider<'t95>, &'t96 gcs::GCSCredentialProvider<'t97>, indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, ()}]>}, [static generator@src/main.rs:340:138: 349:18 gcs_bucket:&'t27 gcs::Bucket, cred_provider:&'t28 gcs::GCSCredentialProvider<'t29> for<'t92, 't93, 't94, 't95, 't96, 't97, 't98, 't99> {indicatif::progress::ProgressBar, &'t92 gcs::Bucket, gcs::Bucket, gcs::GCSCredentialProvider<'t93>, &'t94 gcs::GCSCredentialProvider<'t95>, &'t96 gcs::GCSCredentialProvider<'t97>, indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::collections::HashMap<std::string::String, std::string::String>, std::vec::Vec<(gcs::Fix, i64)>, std::option::Option<S3CachedMetadata>, std::option::Option<std::vec::Vec<(gcs::Fix, i64)>>, std::option::Option<std::vec::Vec<(gcs::Fix, i64)>>, fn(std::result::Result<std::vec::Vec<(gcs::Fix, i64)>, failure::error::Error>) -> std::result::Result<<std::result::Result<std::vec::Vec<(gcs::Fix, i64)>, failure::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::vec::Vec<(gcs::Fix, i64)>, failure::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::vec::Vec<(gcs::Fix, i64)>, failure::error::Error> as std::ops::Try>::into_result}, fn([static generator@src/main.rs:361:127: 369:18 s3_client:&'t36 rusoto_s3::generated::S3Client, s3_bucket_name:&'t37 std::string::String {}]) -> impl core::future::future::Future {std::future::from_generator::<[static generator@src/main.rs:361:127: 369:18 s3_client:&'t36 rusoto_s3::generated::S3Client, s3_bucket_name:&'t37 std::string::String {}]>}, [static generator@src/main.rs:361:127: 369:18 s3_client:&'t38 rusoto_s3::generated::S3Client, s3_bucket_name:&'t39 std::string::String {}], impl core::future::future::Future, impl core::future::future::Future, (), std::vec::Vec<(gcs::Fix, i64)>, std::vec::Vec<gcs::Fix>, std::collections::HashSet<std::string::String>, std::vec::Vec<std::string::String>, std::vec::Vec<(std::string::String, i64)>, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, std::sync::Arc<gcs::GCSCredentialProvider<'t44>>, std::sync::Arc<std::sync::atomic::AtomicUsize>, std::sync::Arc<std::sync::Mutex<std::sync::mpsc::Sender<Completed>>>, indicatif::progress::MultiProgress, indicatif::progress::ProgressBar, indicatif::style::ProgressStyle, usize, std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>, std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>>, std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, std::thread::JoinHandle<()>, usize, fn(std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>) -> futures_util::stream::iter::Iter<<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>> as std::iter::IntoIterator>::IntoIter> {futures_util::stream::iter::iter::<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>>}, std::vec::Vec<(std::string::String, i64)>, std::vec::IntoIter<(std::string::String, i64)>, std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>, futures_util::stream::iter::Iter<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>>, usize, [closure@src/main.rs:488:96: 584:14 cred_provider:&'t46 std::sync::Arc<gcs::GCSCredentialProvider<'t47>>, s3_client:&'t48 std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, gcs_bucket:&'t49 gcs::Bucket, s3_bucket_name:&'t50 std::string::String, all_gcs_keys:&'t51 std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, validated:&'t52 std::sync::Arc<std::sync::atomic::AtomicUsize>, total_failures:&'t53 std::sync::Arc<std::sync::atomic::AtomicUsize>, tx:&'t54 std::sync::Arc<std::sync::Mutex<std::sync::mpsc::Sender<Completed>>>, total_spawned_cloned:&'t55 std::sync::Arc<std::sync::atomic::AtomicUsize>, count_pb:&'t56 std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>>, progress_bars:&'t57 std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, padding:&'t58 usize, should_sync:&'t59 bool], futures_util::stream::for_each_concurrent::ForEachConcurrent<futures_util::stream::iter::Iter<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>>, impl core::future::future::Future, [closure@src/main.rs:488:96: 584:14 cred_provider:&'t62 std::sync::Arc<gcs::GCSCredentialProvider<'t63>>, s3_client:&'t64 std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, gcs_bucket:&'t65 gcs::Bucket, s3_bucket_name:&'t66 std::string::String, all_gcs_keys:&'t67 std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, validated:&'t68 std::sync::Arc<std::sync::atomic::AtomicUsize>, total_failures:&'t69 std::sync::Arc<std::sync::atomic::AtomicUsize>, tx:&'t70 std::sync::Arc<std::sync::Mutex<std::sync::mpsc::Sender<Completed>>>, total_spawned_cloned:&'t71 std::sync::Arc<std::sync::atomic::AtomicUsize>, count_pb:&'t72 std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>>, progress_bars:&'t73 std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, padding:&'t74 usize, should_sync:&'t75 bool]>, futures_util::stream::for_each_concurrent::ForEachConcurrent<futures_util::stream::iter::Iter<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>>, impl core::future::future::Future, [closure@src/main.rs:488:96: 584:14 cred_provider:&'t78 std::sync::Arc<gcs::GCSCredentialProvider<'t79>>, s3_client:&'t80 std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, gcs_bucket:&'t81 gcs::Bucket, s3_bucket_name:&'t82 std::string::String, all_gcs_keys:&'t83 std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, validated:&'t84 std::sync::Arc<std::sync::atomic::AtomicUsize>, total_failures:&'t85 std::sync::Arc<std::sync::atomic::AtomicUsize>, tx:&'t86 std::sync::Arc<std::sync::Mutex<std::sync::mpsc::Sender<Completed>>>, total_spawned_cloned:&'t87 std::sync::Arc<std::sync::atomic::AtomicUsize>, count_pb:&'t88 std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>>, progress_bars:&'t89 std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, padding:&'t90 usize, should_sync:&'t91 bool]>, ()}]` | |
= note: required because it appears within the type `std::future::GenFuture<[static generator@src/main.rs:330:20: 602:10 should_fix:bool, gcs_bucket:gcs::Bucket, cred_provider:gcs::GCSCredentialProvider<'_>, should_sync:bool, s3_bucket_name:std::string::String, s3_client:rusoto_s3::generated::S3Client, completed:std::collections::HashSet<std::string::String>, validated:std::sync::Arc<std::sync::atomic::AtomicUsize>, total_spawned:std::sync::Arc<std::sync::atomic::AtomicUsize>, tx:std::sync::mpsc::Sender<Completed>, total_failures:std::sync::Arc<std::sync::atomic::AtomicUsize> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47, 't48, 't49, 't50, 't51, 't52, 't53, 't54, 't55, 't56, 't57, 't58, 't59, 't60, 't61, 't62, 't63, 't64, 't65, 't66, 't67, 't68, 't69, 't70, 't71, 't72, 't73, 't74, 't75, 't76, 't77, 't78, 't79, 't80, 't81, 't82, 't83, 't84, 't85, 't86, 't87, 't88, 't89, 't90, 't91> {bool, bool, for<'_, '_, '_> fn(&gcs::Bucket, &gcs::GCSCredentialProvider<'_>) -> impl core::future::future::Future {fix_missing}, gcs::Bucket, &'r gcs::Bucket, &'s gcs::Bucket, gcs::GCSCredentialProvider<'t0>, &'t1 gcs::GCSCredentialProvider<'t2>, &'t3 gcs::GCSCredentialProvider<'t4>, impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<(), failure::error::Error>, for<'_, '_, '_> fn(&gcs::Bucket, &gcs::GCSCredentialProvider<'_>) -> impl core::future::future::Future {cleanup_to_delete}, gcs::Bucket, &'t11 gcs::Bucket, &'t12 gcs::Bucket, gcs::GCSCredentialProvider<'t13>, &'t14 gcs::GCSCredentialProvider<'t15>, &'t16 gcs::GCSCredentialProvider<'t17>, impl core::future::future::Future, impl core::future::future::Future, (), std::collections::HashMap<std::string::String, std::string::String>, std::option::Option<GCSCachedMetadata>, std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>, std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>, fn(std::result::Result<std::collections::HashMap<std::string::String, std::string::String>, failure::error::Error>) -> std::result::Result<<std::result::Result<std::collections::HashMap<std::string::String, std::string::String>, failure::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::collections::HashMap<std::string::String, std::string::String>, failure::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::collections::HashMap<std::string::String, std::string::String>, failure::error::Error> as std::ops::Try>::into_result}, fn([static generator@src/main.rs:340:138: 349:18 gcs_bucket:&'t24 gcs::Bucket, cred_provider:&'t25 gcs::GCSCredentialProvider<'t26> for<'t92, 't93, 't94, 't95, 't96, 't97, 't98, 't99> {indicatif::progress::ProgressBar, &'t92 gcs::Bucket, gcs::Bucket, gcs::GCSCredentialProvider<'t93>, &'t94 gcs::GCSCredentialProvider<'t95>, &'t96 gcs::GCSCredentialProvider<'t97>, indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, ()}]) -> impl core::future::future::Future {std::future::from_generator::<[static generator@src/main.rs:340:138: 349:18 gcs_bucket:&'t24 gcs::Bucket, cred_provider:&'t25 gcs::GCSCredentialProvider<'t26> for<'t92, 't93, 't94, 't95, 't96, 't97, 't98, 't99> {indicatif::progress::ProgressBar, &'t92 gcs::Bucket, gcs::Bucket, gcs::GCSCredentialProvider<'t93>, &'t94 gcs::GCSCredentialProvider<'t95>, &'t96 gcs::GCSCredentialProvider<'t97>, indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, ()}]>}, [static generator@src/main.rs:340:138: 349:18 gcs_bucket:&'t27 gcs::Bucket, cred_provider:&'t28 gcs::GCSCredentialProvider<'t29> for<'t92, 't93, 't94, 't95, 't96, 't97, 't98, 't99> {indicatif::progress::ProgressBar, &'t92 gcs::Bucket, gcs::Bucket, gcs::GCSCredentialProvider<'t93>, &'t94 gcs::GCSCredentialProvider<'t95>, &'t96 gcs::GCSCredentialProvider<'t97>, indicatif::progress::ProgressBar, impl core::future::future::Future, impl core::future::future::Future, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::collections::HashMap<std::string::String, std::string::String>, std::vec::Vec<(gcs::Fix, i64)>, std::option::Option<S3CachedMetadata>, std::option::Option<std::vec::Vec<(gcs::Fix, i64)>>, std::option::Option<std::vec::Vec<(gcs::Fix, i64)>>, fn(std::result::Result<std::vec::Vec<(gcs::Fix, i64)>, failure::error::Error>) -> std::result::Result<<std::result::Result<std::vec::Vec<(gcs::Fix, i64)>, failure::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::vec::Vec<(gcs::Fix, i64)>, failure::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::vec::Vec<(gcs::Fix, i64)>, failure::error::Error> as std::ops::Try>::into_result}, fn([static generator@src/main.rs:361:127: 369:18 s3_client:&'t36 rusoto_s3::generated::S3Client, s3_bucket_name:&'t37 std::string::String {}]) -> impl core::future::future::Future {std::future::from_generator::<[static generator@src/main.rs:361:127: 369:18 s3_client:&'t36 rusoto_s3::generated::S3Client, s3_bucket_name:&'t37 std::string::String {}]>}, [static generator@src/main.rs:361:127: 369:18 s3_client:&'t38 rusoto_s3::generated::S3Client, s3_bucket_name:&'t39 std::string::String {}], impl core::future::future::Future, impl core::future::future::Future, (), std::vec::Vec<(gcs::Fix, i64)>, std::vec::Vec<gcs::Fix>, std::collections::HashSet<std::string::String>, std::vec::Vec<std::string::String>, std::vec::Vec<(std::string::String, i64)>, std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, std::sync::Arc<gcs::GCSCredentialProvider<'t44>>, std::sync::Arc<std::sync::atomic::AtomicUsize>, std::sync::Arc<std::sync::Mutex<std::sync::mpsc::Sender<Completed>>>, indicatif::progress::MultiProgress, indicatif::progress::ProgressBar, indicatif::style::ProgressStyle, usize, std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>, std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>>, std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, std::thread::JoinHandle<()>, usize, fn(std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>) -> futures_util::stream::iter::Iter<<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>> as std::iter::IntoIterator>::IntoIter> {futures_util::stream::iter::iter::<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>>}, std::vec::Vec<(std::string::String, i64)>, std::vec::IntoIter<(std::string::String, i64)>, std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>, futures_util::stream::iter::Iter<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>>, usize, [closure@src/main.rs:488:96: 584:14 cred_provider:&'t46 std::sync::Arc<gcs::GCSCredentialProvider<'t47>>, s3_client:&'t48 std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, gcs_bucket:&'t49 gcs::Bucket, s3_bucket_name:&'t50 std::string::String, all_gcs_keys:&'t51 std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, validated:&'t52 std::sync::Arc<std::sync::atomic::AtomicUsize>, total_failures:&'t53 std::sync::Arc<std::sync::atomic::AtomicUsize>, tx:&'t54 std::sync::Arc<std::sync::Mutex<std::sync::mpsc::Sender<Completed>>>, total_spawned_cloned:&'t55 std::sync::Arc<std::sync::atomic::AtomicUsize>, count_pb:&'t56 std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>>, progress_bars:&'t57 std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, padding:&'t58 usize, should_sync:&'t59 bool], futures_util::stream::for_each_concurrent::ForEachConcurrent<futures_util::stream::iter::Iter<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>>, impl core::future::future::Future, [closure@src/main.rs:488:96: 584:14 cred_provider:&'t62 std::sync::Arc<gcs::GCSCredentialProvider<'t63>>, s3_client:&'t64 std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, gcs_bucket:&'t65 gcs::Bucket, s3_bucket_name:&'t66 std::string::String, all_gcs_keys:&'t67 std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, validated:&'t68 std::sync::Arc<std::sync::atomic::AtomicUsize>, total_failures:&'t69 std::sync::Arc<std::sync::atomic::AtomicUsize>, tx:&'t70 std::sync::Arc<std::sync::Mutex<std::sync::mpsc::Sender<Completed>>>, total_spawned_cloned:&'t71 std::sync::Arc<std::sync::atomic::AtomicUsize>, count_pb:&'t72 std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>>, progress_bars:&'t73 std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, padding:&'t74 usize, should_sync:&'t75 bool]>, futures_util::stream::for_each_concurrent::ForEachConcurrent<futures_util::stream::iter::Iter<std::iter::Enumerate<std::vec::IntoIter<(std::string::String, i64)>>>, impl core::future::future::Future, [closure@src/main.rs:488:96: 584:14 cred_provider:&'t78 std::sync::Arc<gcs::GCSCredentialProvider<'t79>>, s3_client:&'t80 std::sync::Arc<std::sync::Mutex<rusoto_s3::generated::S3Client>>, gcs_bucket:&'t81 gcs::Bucket, s3_bucket_name:&'t82 std::string::String, all_gcs_keys:&'t83 std::sync::Arc<std::collections::HashMap<std::string::String, std::string::String>>, validated:&'t84 std::sync::Arc<std::sync::atomic::AtomicUsize>, total_failures:&'t85 std::sync::Arc<std::sync::atomic::AtomicUsize>, tx:&'t86 std::sync::Arc<std::sync::Mutex<std::sync::mpsc::Sender<Completed>>>, total_spawned_cloned:&'t87 std::sync::Arc<std::sync::atomic::AtomicUsize>, count_pb:&'t88 std::sync::Arc<std::sync::Mutex<indicatif::progress::ProgressBar>>, progress_bars:&'t89 std::sync::Arc<std::sync::Mutex<std::vec::Vec<std::option::Option<indicatif::progress::ProgressBar>>>>, padding:&'t90 usize, should_sync:&'t91 bool]>, ()}]>` | |
= note: required because it appears within the type `impl core::future::future::Future` | |
= note: required because it appears within the type `futures_util::try_future::map_err::MapErr<impl core::future::future::Future, [closure@src/main.rs:603:22: 603:70]>` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment