Skip to content

Instantly share code, notes, and snippets.

@pimeys
Created October 17, 2019 08:52
Show Gist options
  • Save pimeys/102281d868c25cd64c8d7b99f9821e82 to your computer and use it in GitHub Desktop.
Save pimeys/102281d868c25cd64c8d7b99f9821e82 to your computer and use it in GitHub Desktop.
error: ambiguous `+` in a type
--> src/connector/postgres/conversion.rs:19:14
|
19 | ) -> Vec<&'a dyn tokio_postgres::types::ToSql + Sync> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use parentheses to disambiguate: `(dyn tokio_postgres::types::ToSql + Sync)`
error[E0277]: `dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send` cannot be shared between threads safely
--> src/connector/postgres.rs:247:9
|
247 | metrics::query("postgres.execute", &sql, &params, || {
| ^^^^^^^^^^^^^^ `dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send` cannot be shared between threads safely
|
::: src/connector/metrics.rs:4:15
|
4 | pub(crate) fn query<'a, F, T, U>(
| -----
...
12 | U: Future<Output = crate::Result<T>> + Send + Sync,
| ---- required by this bound in `connector::metrics::query`
|
= help: the trait `std::marker::Sync` is not implemented for `dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send`
= note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send>`
= note: required because it appears within the type `std::boxed::Box<dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send>`
= note: required because it appears within the type `std::pin::Pin<std::boxed::Box<dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send>>`
= 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> {&'r std::sync::Arc<tokio_postgres::client::InnerClient>, u32, fn(std::result::Result<tokio_postgres::statement::Statement, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<tokio_postgres::statement::Statement, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<tokio_postgres::statement::Statement, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<tokio_postgres::statement::Statement, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>) -> impl core::future::future::Future {tokio_postgres::prepare::typeinfo_statement}, &'s std::sync::Arc<tokio_postgres::client::InnerClient>, impl core::future::future::Future, impl core::future::future::Future, (), tokio_postgres::statement::Statement, fn(std::result::Result<tokio_postgres::query::RowStream, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<tokio_postgres::query::RowStream, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<tokio_postgres::query::RowStream, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<tokio_postgres::query::RowStream, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&tokio_postgres::client::InnerClient, tokio_postgres::statement::Statement, impl std::iter::ExactSizeIterator) -> impl core::future::future::Future {tokio_postgres::query::query::<'t2, impl std::iter::ExactSizeIterator>}, &'t4 tokio_postgres::client::InnerClient, for<'a> fn(&'a [&'a (dyn postgres_types::ToSql + std::marker::Sync + 'a)]) -> impl std::iter::ExactSizeIterator {tokio_postgres::slice_iter}, &'t5 (dyn postgres_types::ToSql + std::marker::Sync + 't6), &'t7 u32, [&'t8 (dyn postgres_types::ToSql + std::marker::Sync + 't9); 1], &'t10 [&'t11 (dyn postgres_types::ToSql + std::marker::Sync + 't12)], &'t13 [&'t14 (dyn postgres_types::ToSql + std::marker::Sync + 't15); 1], impl std::iter::ExactSizeIterator, impl core::future::future::Future, impl core::future::future::Future, tokio_postgres::query::RowStream, std::pin::Pin<&'t25 mut tokio_postgres::query::RowStream>, fn(std::result::Result<std::option::Option<tokio_postgres::row::Row>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::option::Option<tokio_postgres::row::Row>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::option::Option<tokio_postgres::row::Row>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::option::Option<tokio_postgres::row::Row>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, &'t26 mut std::pin::Pin<&'t27 mut tokio_postgres::query::RowStream>, futures_util::try_stream::try_next::TryNext<'t28, std::pin::Pin<&'t29 mut tokio_postgres::query::RowStream>>, futures_util::try_stream::try_next::TryNext<'t30, std::pin::Pin<&'t31 mut tokio_postgres::query::RowStream>>, tokio_postgres::row::Row, std::string::String, i8, std::option::Option<u32>, bool, fn(std::result::Result<std::vec::Vec<std::string::String>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::vec::Vec<std::string::String>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::vec::Vec<std::string::String>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::vec::Vec<std::string::String>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>, u32) -> impl core::future::future::Future {tokio_postgres::prepare::get_enum_variants}, &'t32 std::sync::Arc<tokio_postgres::client::InnerClient>, impl core::future::future::Future, impl core::future::future::Future, fn(std::result::Result<postgres_types::Type, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'a> fn(&'a std::sync::Arc<tokio_postgres::client::InnerClient>, u32) -> std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 'a)>> {tokio_postgres::prepare::get_type_rec}, &'t35 std::sync::Arc<tokio_postgres::client::InnerClient>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't36)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't37)>>, &'t38 std::sync::Arc<tokio_postgres::client::InnerClient>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't39)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't40)>>, fn(std::result::Result<std::vec::Vec<postgres_types::Field>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::vec::Vec<postgres_types::Field>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::vec::Vec<postgres_types::Field>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::vec::Vec<postgres_types::Field>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>, u32) -> impl core::future::future::Future {tokio_postgres::prepare::get_composite_fields}, &'t41 std::sync::Arc<tokio_postgres::client::InnerClient>, impl core::future::future::Future, impl core::future::future::Future, &'t44 std::sync::Arc<tokio_postgres::client::InnerClient>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't45)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't46)>>}`
= note: required because it appears within the type `[static generator@DefId(45:1213 ~ tokio_postgres[8858]::prepare[0]::get_type[0]::{{closure}}[0]) 0:&std::sync::Arc<tokio_postgres::client::InnerClient>, 1:u32 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> {&'r std::sync::Arc<tokio_postgres::client::InnerClient>, u32, fn(std::result::Result<tokio_postgres::statement::Statement, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<tokio_postgres::statement::Statement, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<tokio_postgres::statement::Statement, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<tokio_postgres::statement::Statement, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>) -> impl core::future::future::Future {tokio_postgres::prepare::typeinfo_statement}, &'s std::sync::Arc<tokio_postgres::client::InnerClient>, impl core::future::future::Future, impl core::future::future::Future, (), tokio_postgres::statement::Statement, fn(std::result::Result<tokio_postgres::query::RowStream, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<tokio_postgres::query::RowStream, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<tokio_postgres::query::RowStream, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<tokio_postgres::query::RowStream, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&tokio_postgres::client::InnerClient, tokio_postgres::statement::Statement, impl std::iter::ExactSizeIterator) -> impl core::future::future::Future {tokio_postgres::query::query::<'t2, impl std::iter::ExactSizeIterator>}, &'t4 tokio_postgres::client::InnerClient, for<'a> fn(&'a [&'a (dyn postgres_types::ToSql + std::marker::Sync + 'a)]) -> impl std::iter::ExactSizeIterator {tokio_postgres::slice_iter}, &'t5 (dyn postgres_types::ToSql + std::marker::Sync + 't6), &'t7 u32, [&'t8 (dyn postgres_types::ToSql + std::marker::Sync + 't9); 1], &'t10 [&'t11 (dyn postgres_types::ToSql + std::marker::Sync + 't12)], &'t13 [&'t14 (dyn postgres_types::ToSql + std::marker::Sync + 't15); 1], impl std::iter::ExactSizeIterator, impl core::future::future::Future, impl core::future::future::Future, tokio_postgres::query::RowStream, std::pin::Pin<&'t25 mut tokio_postgres::query::RowStream>, fn(std::result::Result<std::option::Option<tokio_postgres::row::Row>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::option::Option<tokio_postgres::row::Row>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::option::Option<tokio_postgres::row::Row>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::option::Option<tokio_postgres::row::Row>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, &'t26 mut std::pin::Pin<&'t27 mut tokio_postgres::query::RowStream>, futures_util::try_stream::try_next::TryNext<'t28, std::pin::Pin<&'t29 mut tokio_postgres::query::RowStream>>, futures_util::try_stream::try_next::TryNext<'t30, std::pin::Pin<&'t31 mut tokio_postgres::query::RowStream>>, tokio_postgres::row::Row, std::string::String, i8, std::option::Option<u32>, bool, fn(std::result::Result<std::vec::Vec<std::string::String>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::vec::Vec<std::string::String>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::vec::Vec<std::string::String>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::vec::Vec<std::string::String>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>, u32) -> impl core::future::future::Future {tokio_postgres::prepare::get_enum_variants}, &'t32 std::sync::Arc<tokio_postgres::client::InnerClient>, impl core::future::future::Future, impl core::future::future::Future, fn(std::result::Result<postgres_types::Type, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'a> fn(&'a std::sync::Arc<tokio_postgres::client::InnerClient>, u32) -> std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 'a)>> {tokio_postgres::prepare::get_type_rec}, &'t35 std::sync::Arc<tokio_postgres::client::InnerClient>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't36)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't37)>>, &'t38 std::sync::Arc<tokio_postgres::client::InnerClient>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't39)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't40)>>, fn(std::result::Result<std::vec::Vec<postgres_types::Field>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::vec::Vec<postgres_types::Field>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::vec::Vec<postgres_types::Field>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::vec::Vec<postgres_types::Field>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>, u32) -> impl core::future::future::Future {tokio_postgres::prepare::get_composite_fields}, &'t41 std::sync::Arc<tokio_postgres::client::InnerClient>, impl core::future::future::Future, impl core::future::future::Future, &'t44 std::sync::Arc<tokio_postgres::client::InnerClient>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't45)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't46)>>}]`
= note: required because it appears within the type `std::future::GenFuture<[static generator@DefId(45:1213 ~ tokio_postgres[8858]::prepare[0]::get_type[0]::{{closure}}[0]) 0:&std::sync::Arc<tokio_postgres::client::InnerClient>, 1:u32 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> {&'r std::sync::Arc<tokio_postgres::client::InnerClient>, u32, fn(std::result::Result<tokio_postgres::statement::Statement, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<tokio_postgres::statement::Statement, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<tokio_postgres::statement::Statement, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<tokio_postgres::statement::Statement, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>) -> impl core::future::future::Future {tokio_postgres::prepare::typeinfo_statement}, &'s std::sync::Arc<tokio_postgres::client::InnerClient>, impl core::future::future::Future, impl core::future::future::Future, (), tokio_postgres::statement::Statement, fn(std::result::Result<tokio_postgres::query::RowStream, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<tokio_postgres::query::RowStream, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<tokio_postgres::query::RowStream, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<tokio_postgres::query::RowStream, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&tokio_postgres::client::InnerClient, tokio_postgres::statement::Statement, impl std::iter::ExactSizeIterator) -> impl core::future::future::Future {tokio_postgres::query::query::<'t2, impl std::iter::ExactSizeIterator>}, &'t4 tokio_postgres::client::InnerClient, for<'a> fn(&'a [&'a (dyn postgres_types::ToSql + std::marker::Sync + 'a)]) -> impl std::iter::ExactSizeIterator {tokio_postgres::slice_iter}, &'t5 (dyn postgres_types::ToSql + std::marker::Sync + 't6), &'t7 u32, [&'t8 (dyn postgres_types::ToSql + std::marker::Sync + 't9); 1], &'t10 [&'t11 (dyn postgres_types::ToSql + std::marker::Sync + 't12)], &'t13 [&'t14 (dyn postgres_types::ToSql + std::marker::Sync + 't15); 1], impl std::iter::ExactSizeIterator, impl core::future::future::Future, impl core::future::future::Future, tokio_postgres::query::RowStream, std::pin::Pin<&'t25 mut tokio_postgres::query::RowStream>, fn(std::result::Result<std::option::Option<tokio_postgres::row::Row>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::option::Option<tokio_postgres::row::Row>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::option::Option<tokio_postgres::row::Row>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::option::Option<tokio_postgres::row::Row>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, &'t26 mut std::pin::Pin<&'t27 mut tokio_postgres::query::RowStream>, futures_util::try_stream::try_next::TryNext<'t28, std::pin::Pin<&'t29 mut tokio_postgres::query::RowStream>>, futures_util::try_stream::try_next::TryNext<'t30, std::pin::Pin<&'t31 mut tokio_postgres::query::RowStream>>, tokio_postgres::row::Row, std::string::String, i8, std::option::Option<u32>, bool, fn(std::result::Result<std::vec::Vec<std::string::String>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::vec::Vec<std::string::String>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::vec::Vec<std::string::String>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::vec::Vec<std::string::String>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>, u32) -> impl core::future::future::Future {tokio_postgres::prepare::get_enum_variants}, &'t32 std::sync::Arc<tokio_postgres::client::InnerClient>, impl core::future::future::Future, impl core::future::future::Future, fn(std::result::Result<postgres_types::Type, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'a> fn(&'a std::sync::Arc<tokio_postgres::client::InnerClient>, u32) -> std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 'a)>> {tokio_postgres::prepare::get_type_rec}, &'t35 std::sync::Arc<tokio_postgres::client::InnerClient>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't36)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't37)>>, &'t38 std::sync::Arc<tokio_postgres::client::InnerClient>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't39)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't40)>>, fn(std::result::Result<std::vec::Vec<postgres_types::Field>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::vec::Vec<postgres_types::Field>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::vec::Vec<postgres_types::Field>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::vec::Vec<postgres_types::Field>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>, u32) -> impl core::future::future::Future {tokio_postgres::prepare::get_composite_fields}, &'t41 std::sync::Arc<tokio_postgres::client::InnerClient>, impl core::future::future::Future, impl core::future::future::Future, &'t44 std::sync::Arc<tokio_postgres::client::InnerClient>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't45)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<postgres_types::Type, tokio_postgres::error::Error>> + std::marker::Send + 't46)>>}]>`
= 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> {&'r std::sync::Arc<tokio_postgres::client::InnerClient>, &'s str, &'t0 [postgres_types::Type], std::string::String, bytes::bytes::Bytes, tokio_postgres::client::Responses, fn(std::result::Result<postgres_protocol::message::backend::Message, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<postgres_protocol::message::backend::Message, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<postgres_protocol::message::backend::Message, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<postgres_protocol::message::backend::Message, tokio_postgres::error::Error> as std::ops::Try>::into_result}, &'t1 mut tokio_postgres::client::Responses, impl core::future::future::Future, impl core::future::future::Future, (), &'t4 mut tokio_postgres::client::Responses, impl core::future::future::Future, impl core::future::future::Future, postgres_protocol::message::backend::ParameterDescriptionBody, &'t7 mut tokio_postgres::client::Responses, impl core::future::future::Future, impl core::future::future::Future, std::option::Option<postgres_protocol::message::backend::RowDescriptionBody>, std::vec::Vec<postgres_types::Type>, postgres_protocol::message::backend::Parameters<'t10>, fn(std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, &'t11 mut postgres_protocol::message::backend::Parameters<'t12>, std::result::Result<std::option::Option<u32>, std::io::Error>, fn(std::io::Error) -> tokio_postgres::error::Error {tokio_postgres::error::Error::parse}, std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error>, std::option::Option<u32>, u32, fn(std::result::Result<postgres_types::Type, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>, u32) -> impl core::future::future::Future {tokio_postgres::prepare::get_type}, &'t13 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t14 &'t15 std::sync::Arc<tokio_postgres::client::InnerClient>, impl core::future::future::Future, impl core::future::future::Future, std::vec::Vec<tokio_postgres::statement::Column>, postgres_protocol::message::backend::RowDescriptionBody, postgres_protocol::message::backend::Fields<'t18>, fn(std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t19>>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t19>>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t19>>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t19>>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, &'t20 mut postgres_protocol::message::backend::Fields<'t21>, std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t22>>, std::io::Error>, std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t23>>, tokio_postgres::error::Error>, std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t24>>, tokio_postgres::error::Error>, std::option::Option<postgres_protocol::message::backend::Field<'t25>>, postgres_protocol::message::backend::Field<'t26>, &'t27 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t28 &'t29 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t30 postgres_protocol::message::backend::Field<'t31>, impl core::future::future::Future, impl core::future::future::Future}`
= note: required because it appears within the type `[static generator@DefId(45:1206 ~ tokio_postgres[8858]::prepare[0]::prepare[0]::{{closure}}[0]) 0:&std::sync::Arc<tokio_postgres::client::InnerClient>, 1:&str, 2:&[postgres_types::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> {&'r std::sync::Arc<tokio_postgres::client::InnerClient>, &'s str, &'t0 [postgres_types::Type], std::string::String, bytes::bytes::Bytes, tokio_postgres::client::Responses, fn(std::result::Result<postgres_protocol::message::backend::Message, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<postgres_protocol::message::backend::Message, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<postgres_protocol::message::backend::Message, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<postgres_protocol::message::backend::Message, tokio_postgres::error::Error> as std::ops::Try>::into_result}, &'t1 mut tokio_postgres::client::Responses, impl core::future::future::Future, impl core::future::future::Future, (), &'t4 mut tokio_postgres::client::Responses, impl core::future::future::Future, impl core::future::future::Future, postgres_protocol::message::backend::ParameterDescriptionBody, &'t7 mut tokio_postgres::client::Responses, impl core::future::future::Future, impl core::future::future::Future, std::option::Option<postgres_protocol::message::backend::RowDescriptionBody>, std::vec::Vec<postgres_types::Type>, postgres_protocol::message::backend::Parameters<'t10>, fn(std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, &'t11 mut postgres_protocol::message::backend::Parameters<'t12>, std::result::Result<std::option::Option<u32>, std::io::Error>, fn(std::io::Error) -> tokio_postgres::error::Error {tokio_postgres::error::Error::parse}, std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error>, std::option::Option<u32>, u32, fn(std::result::Result<postgres_types::Type, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>, u32) -> impl core::future::future::Future {tokio_postgres::prepare::get_type}, &'t13 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t14 &'t15 std::sync::Arc<tokio_postgres::client::InnerClient>, impl core::future::future::Future, impl core::future::future::Future, std::vec::Vec<tokio_postgres::statement::Column>, postgres_protocol::message::backend::RowDescriptionBody, postgres_protocol::message::backend::Fields<'t18>, fn(std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t19>>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t19>>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t19>>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t19>>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, &'t20 mut postgres_protocol::message::backend::Fields<'t21>, std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t22>>, std::io::Error>, std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t23>>, tokio_postgres::error::Error>, std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t24>>, tokio_postgres::error::Error>, std::option::Option<postgres_protocol::message::backend::Field<'t25>>, postgres_protocol::message::backend::Field<'t26>, &'t27 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t28 &'t29 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t30 postgres_protocol::message::backend::Field<'t31>, impl core::future::future::Future, impl core::future::future::Future}]`
= note: required because it appears within the type `std::future::GenFuture<[static generator@DefId(45:1206 ~ tokio_postgres[8858]::prepare[0]::prepare[0]::{{closure}}[0]) 0:&std::sync::Arc<tokio_postgres::client::InnerClient>, 1:&str, 2:&[postgres_types::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> {&'r std::sync::Arc<tokio_postgres::client::InnerClient>, &'s str, &'t0 [postgres_types::Type], std::string::String, bytes::bytes::Bytes, tokio_postgres::client::Responses, fn(std::result::Result<postgres_protocol::message::backend::Message, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<postgres_protocol::message::backend::Message, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<postgres_protocol::message::backend::Message, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<postgres_protocol::message::backend::Message, tokio_postgres::error::Error> as std::ops::Try>::into_result}, &'t1 mut tokio_postgres::client::Responses, impl core::future::future::Future, impl core::future::future::Future, (), &'t4 mut tokio_postgres::client::Responses, impl core::future::future::Future, impl core::future::future::Future, postgres_protocol::message::backend::ParameterDescriptionBody, &'t7 mut tokio_postgres::client::Responses, impl core::future::future::Future, impl core::future::future::Future, std::option::Option<postgres_protocol::message::backend::RowDescriptionBody>, std::vec::Vec<postgres_types::Type>, postgres_protocol::message::backend::Parameters<'t10>, fn(std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, &'t11 mut postgres_protocol::message::backend::Parameters<'t12>, std::result::Result<std::option::Option<u32>, std::io::Error>, fn(std::io::Error) -> tokio_postgres::error::Error {tokio_postgres::error::Error::parse}, std::result::Result<std::option::Option<u32>, tokio_postgres::error::Error>, std::option::Option<u32>, u32, fn(std::result::Result<postgres_types::Type, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<postgres_types::Type, tokio_postgres::error::Error> as std::ops::Try>::into_result}, for<'_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>, u32) -> impl core::future::future::Future {tokio_postgres::prepare::get_type}, &'t13 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t14 &'t15 std::sync::Arc<tokio_postgres::client::InnerClient>, impl core::future::future::Future, impl core::future::future::Future, std::vec::Vec<tokio_postgres::statement::Column>, postgres_protocol::message::backend::RowDescriptionBody, postgres_protocol::message::backend::Fields<'t18>, fn(std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t19>>, tokio_postgres::error::Error>) -> std::result::Result<<std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t19>>, tokio_postgres::error::Error> as std::ops::Try>::Ok, <std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t19>>, tokio_postgres::error::Error> as std::ops::Try>::Error> {<std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t19>>, tokio_postgres::error::Error> as std::ops::Try>::into_result}, &'t20 mut postgres_protocol::message::backend::Fields<'t21>, std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t22>>, std::io::Error>, std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t23>>, tokio_postgres::error::Error>, std::result::Result<std::option::Option<postgres_protocol::message::backend::Field<'t24>>, tokio_postgres::error::Error>, std::option::Option<postgres_protocol::message::backend::Field<'t25>>, postgres_protocol::message::backend::Field<'t26>, &'t27 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t28 &'t29 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t30 postgres_protocol::message::backend::Field<'t31>, 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> {&'r tokio_postgres::client::Client, &'s str, &'t0 [postgres_types::Type], for<'_, '_, '_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>, &str, &[postgres_types::Type]) -> impl core::future::future::Future {tokio_postgres::prepare::prepare}, tokio_postgres::client::Client, std::sync::Arc<tokio_postgres::client::InnerClient>, &'t1 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t2 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t3 str, &'t4 [postgres_types::Type], impl core::future::future::Future, ()}`
= note: required because it appears within the type `[static generator@DefId(45:197 ~ tokio_postgres[8858]::client[0]::{{impl}}[2]::prepare_typed[0]::{{closure}}[0]) 0:&tokio_postgres::client::Client, 1:&str, 2:&[postgres_types::Type] for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7> {&'r tokio_postgres::client::Client, &'s str, &'t0 [postgres_types::Type], for<'_, '_, '_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>, &str, &[postgres_types::Type]) -> impl core::future::future::Future {tokio_postgres::prepare::prepare}, tokio_postgres::client::Client, std::sync::Arc<tokio_postgres::client::InnerClient>, &'t1 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t2 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t3 str, &'t4 [postgres_types::Type], impl core::future::future::Future, ()}]`
= note: required because it appears within the type `std::future::GenFuture<[static generator@DefId(45:197 ~ tokio_postgres[8858]::client[0]::{{impl}}[2]::prepare_typed[0]::{{closure}}[0]) 0:&tokio_postgres::client::Client, 1:&str, 2:&[postgres_types::Type] for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7> {&'r tokio_postgres::client::Client, &'s str, &'t0 [postgres_types::Type], for<'_, '_, '_> fn(&std::sync::Arc<tokio_postgres::client::InnerClient>, &str, &[postgres_types::Type]) -> impl core::future::future::Future {tokio_postgres::prepare::prepare}, tokio_postgres::client::Client, std::sync::Arc<tokio_postgres::client::InnerClient>, &'t1 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t2 std::sync::Arc<tokio_postgres::client::InnerClient>, &'t3 str, &'t4 [postgres_types::Type], impl core::future::future::Future, ()}]>`
= note: required because it appears within the type `impl core::future::future::Future`
[Finished running. Exit status: 0]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment