Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Send between threads error when using actix_web client with juniper #1351

Closed
arlyon opened this issue Feb 11, 2020 · 7 comments
Closed

Send between threads error when using actix_web client with juniper #1351

arlyon opened this issue Feb 11, 2020 · 7 comments

Comments

@arlyon
Copy link

arlyon commented Feb 11, 2020

Describe the bug

When trying to use the actix_web client inside an impl decorated with graphql_object, a number of errors pop up regarding sending futures between threads. I have posted an issue on juniper graphql-rust/juniper#529 but figured this needed visibility on both ends.

This is on juniper master with the async feature enabled.

out.log

error[E0277]: `std::rc::Rc<awc::ClientConfig>` cannot be sent between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::rc::Rc<awc::ClientConfig>` cannot be sent between threads safely
   |
   = help: within `impl core::future::future::Future`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<awc::ClientConfig>`
   = note: required because it appears within the type `awc::Client`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `std::rc::Rc<awc::ClientConfig>` cannot be shared between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::rc::Rc<awc::ClientConfig>` cannot be shared between threads safely
   |
   = help: within `awc::Client`, the trait `std::marker::Sync` is not implemented for `std::rc::Rc<awc::ClientConfig>`
   = note: required because it appears within the type `awc::Client`
   = note: required because of the requirements on the impl of `std::marker::Send` for `&awc::Client`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `std::rc::Rc<std::cell::RefCell<actix_http::h1::payload::Inner>>` cannot be sent between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::rc::Rc<std::cell::RefCell<actix_http::h1::payload::Inner>>` cannot be sent between threads safely
   |
   = help: within `impl core::future::future::Future`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<std::cell::RefCell<actix_http::h1::payload::Inner>>`
   = note: required because it appears within the type `actix_http::h1::payload::Payload`
   = note: required because it appears within the type `actix_http::payload::Payload<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>>`
   = note: required because it appears within the type `awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>>`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `std::rc::Rc<awc::ClientConfig>` cannot be sent between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::rc::Rc<awc::ClientConfig>` cannot be sent between threads safely
   |
   = help: within `impl core::future::future::Future`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<awc::ClientConfig>`
   = note: required because it appears within the type `awc::Client`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)` cannot be sent between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)` cannot be sent between threads safely
   |
   = help: the trait `std::marker::Send` is not implemented for `(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)>`
   = note: required because it appears within the type `std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)>`
   = note: required because it appears within the type `std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)>>`
   = note: required because it appears within the type `awc::sender::SendClientRequest`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `std::rc::Rc<awc::ClientConfig>` cannot be shared between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::rc::Rc<awc::ClientConfig>` cannot be shared between threads safely
   |
   = help: within `awc::Client`, the trait `std::marker::Sync` is not implemented for `std::rc::Rc<awc::ClientConfig>`
   = note: required because it appears within the type `awc::Client`
   = note: required because of the requirements on the impl of `std::marker::Send` for `&awc::Client`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `std::rc::Rc<std::cell::RefCell<actix_http::h1::payload::Inner>>` cannot be sent between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::rc::Rc<std::cell::RefCell<actix_http::h1::payload::Inner>>` cannot be sent between threads safely
   |
   = help: within `impl core::future::future::Future`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<std::cell::RefCell<actix_http::h1::payload::Inner>>`
   = note: required because it appears within the type `actix_http::h1::payload::Payload`
   = note: required because it appears within the type `actix_http::payload::Payload<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>>`
   = note: required because it appears within the type `awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>>`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `(dyn actix_http::error::ResponseError + 'static)` cannot be sent between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn actix_http::error::ResponseError + 'static)` cannot be sent between threads safely
   |
   = help: the trait `std::marker::Send` is not implemented for `(dyn actix_http::error::ResponseError + 'static)`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn actix_http::error::ResponseError + 'static)>`
   = note: required because it appears within the type `std::boxed::Box<(dyn actix_http::error::ResponseError + 'static)>`
   = note: required because it appears within the type `actix_http::error::Error`
   = note: required because it appears within the type `actix_http::client::error::SendRequestError`
   = note: required because it appears within the type `std::option::Option<actix_http::client::error::SendRequestError>`
   = note: required because it appears within the type `awc::sender::SendClientRequest`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)` cannot be sent between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)` cannot be sent between threads safely
   |
   = help: the trait `std::marker::Send` is not implemented for `(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)>`
   = note: required because it appears within the type `std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)>`
   = note: required because it appears within the type `std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)>>`
   = note: required because it appears within the type `awc::sender::SendClientRequest`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>` cannot be sent between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>` cannot be sent between threads safely
   |
   = help: the trait `std::marker::Send` is not implemented for `dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>`
   = note: required because it appears within the type `std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>`
   = note: required because it appears within the type `std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>`
   = note: required because it appears within the type `actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>`
   = note: required because it appears within the type `actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>`
   = note: required because it appears within the type `actix_http::payload::Payload<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>>`
   = note: required because it appears within the type `awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>>`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `(dyn actix_http::error::ResponseError + 'static)` cannot be sent between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn actix_http::error::ResponseError + 'static)` cannot be sent between threads safely
   |
   = help: the trait `std::marker::Send` is not implemented for `(dyn actix_http::error::ResponseError + 'static)`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn actix_http::error::ResponseError + 'static)>`
   = note: required because it appears within the type `std::boxed::Box<(dyn actix_http::error::ResponseError + 'static)>`
   = note: required because it appears within the type `actix_http::error::Error`
   = note: required because it appears within the type `actix_http::client::error::SendRequestError`
   = note: required because it appears within the type `std::option::Option<actix_http::client::error::SendRequestError>`
   = note: required because it appears within the type `awc::sender::SendClientRequest`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `(dyn std::any::Any + 'static)` cannot be sent between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn std::any::Any + 'static)` cannot be sent between threads safely
   |
   = help: the trait `std::marker::Send` is not implemented for `(dyn std::any::Any + 'static)`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn std::any::Any + 'static)>`
   = note: required because it appears within the type `std::boxed::Box<(dyn std::any::Any + 'static)>`
   = note: required because it appears within the type `(std::any::TypeId, std::boxed::Box<(dyn std::any::Any + 'static)>)`
   = note: required because of the requirements on the impl of `std::marker::Send` for `hashbrown::raw::RawTable<(std::any::TypeId, std::boxed::Box<(dyn std::any::Any + 'static)>)>`
   = note: required because it appears within the type `hashbrown::map::HashMap<std::any::TypeId, std::boxed::Box<(dyn std::any::Any + 'static)>, std::hash::BuildHasherDefault<fxhash::FxHasher>>`
   = note: required because it appears within the type `std::collections::HashMap<std::any::TypeId, std::boxed::Box<(dyn std::any::Any + 'static)>, std::hash::BuildHasherDefault<fxhash::FxHasher>>`
   = note: required because it appears within the type `actix_http::extensions::Extensions`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::cell::RefCell<actix_http::extensions::Extensions>`
   = note: required because it appears within the type `actix_http::message::RequestHead`
   = note: required because it appears within the type `awc::request::ClientRequest`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>` cannot be sent between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>` cannot be sent between threads safely
   |
   = help: the trait `std::marker::Send` is not implemented for `dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>`
   = note: required because it appears within the type `std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>`
   = note: required because it appears within the type `std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>`
   = note: required because it appears within the type `actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>`
   = note: required because it appears within the type `actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>`
   = note: required because it appears within the type `actix_http::payload::Payload<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>>`
   = note: required because it appears within the type `awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>>`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `(dyn std::any::Any + 'static)` cannot be sent between threads safely
  --> juniper/src/schema.rs:32:1
   |
32 | #[juniper::graphql_object]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn std::any::Any + 'static)` cannot be sent between threads safely
   |
   = help: the trait `std::marker::Send` is not implemented for `(dyn std::any::Any + 'static)`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn std::any::Any + 'static)>`
   = note: required because it appears within the type `std::boxed::Box<(dyn std::any::Any + 'static)>`
   = note: required because it appears within the type `(std::any::TypeId, std::boxed::Box<(dyn std::any::Any + 'static)>)`
   = note: required because of the requirements on the impl of `std::marker::Send` for `hashbrown::raw::RawTable<(std::any::TypeId, std::boxed::Box<(dyn std::any::Any + 'static)>)>`
   = note: required because it appears within the type `hashbrown::map::HashMap<std::any::TypeId, std::boxed::Box<(dyn std::any::Any + 'static)>, std::hash::BuildHasherDefault<fxhash::FxHasher>>`
   = note: required because it appears within the type `std::collections::HashMap<std::any::TypeId, std::boxed::Box<(dyn std::any::Any + 'static)>, std::hash::BuildHasherDefault<fxhash::FxHasher>>`
   = note: required because it appears within the type `actix_http::extensions::Extensions`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::cell::RefCell<actix_http::extensions::Extensions>`
   = note: required because it appears within the type `actix_http::message::RequestHead`
   = note: required because it appears within the type `awc::request::ClientRequest`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:32:1: 32:27 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, ()> 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> {[static generator@juniper/src/schema.rs:32:1: 32:27 args:&'r juniper::types::base::Arguments<'s> for<'t23, 't24, 't25, 't26, 't27, 't28, 't29, 't30> {std::string::String, awc::Client, &'t23 awc::Client, awc::Client, &'t24 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't25)>>>>>, &'t26 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't27)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't28)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't29)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't30)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, ()>, &'t7 juniper::executor::Executor<'t8, ()>, (), &'t9 (), &'t10 (), &'t11 schema::Human, &'t12 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

To Reproduce

I created a minimum reproducing repository here, based on the actix web example: https://github.com/arlyon/examples/tree/juniper-actix-error/juniper

Expected behavior

I would expect this to work correctly. It should be noted that hyper works fine, but I'd like to avoid using another client when I have one baked in.

@GopherJ
Copy link

GopherJ commented Mar 22, 2020

Hello @arlyon , You may need reqwest. By default actix-web starts mutiple workers and every worker owns its proper data. So basically, it's designed like this.

@robjtede
Copy link
Member

Seems like its the error handling that's at fault here? Does it compile if you use .unwrap instead of ? on the .send().await line?

@arlyon
Copy link
Author

arlyon commented Mar 22, 2020

@robjtede Converting all the ? into unwraps spits out this:

out.log

   Compiling juniper-example v0.2.0 (/Users/arlyon/Downloads/examples-juniper-actix-error/juniper)
error[E0277]: `std::rc::Rc<awc::ClientConfig>` cannot be sent between threads safely
  --> juniper/src/schema.rs:38:1
   |
38 | #[juniper::graphql_object(Context=Context)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::rc::Rc<awc::ClientConfig>` cannot be sent between threads safely
   |
   = help: within `impl core::future::future::Future`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<awc::ClientConfig>`
   = note: required because it appears within the type `awc::Client`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `std::rc::Rc<awc::ClientConfig>` cannot be shared between threads safely
  --> juniper/src/schema.rs:38:1
   |
38 | #[juniper::graphql_object(Context=Context)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::rc::Rc<awc::ClientConfig>` cannot be shared between threads safely
   |
   = help: within `awc::Client`, the trait `std::marker::Sync` is not implemented for `std::rc::Rc<awc::ClientConfig>`
   = note: required because it appears within the type `awc::Client`
   = note: required because of the requirements on the impl of `std::marker::Send` for `&awc::Client`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `std::rc::Rc<std::cell::RefCell<actix_http::h1::payload::Inner>>` cannot be sent between threads safely
  --> juniper/src/schema.rs:38:1
   |
38 | #[juniper::graphql_object(Context=Context)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::rc::Rc<std::cell::RefCell<actix_http::h1::payload::Inner>>` cannot be sent between threads safely
   |
   = help: within `impl core::future::future::Future`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<std::cell::RefCell<actix_http::h1::payload::Inner>>`
   = note: required because it appears within the type `actix_http::h1::payload::Payload`
   = note: required because it appears within the type `actix_http::payload::Payload<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>>`
   = note: required because it appears within the type `awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>>`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)` cannot be sent between threads safely
  --> juniper/src/schema.rs:38:1
   |
38 | #[juniper::graphql_object(Context=Context)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)` cannot be sent between threads safely
   |
   = help: the trait `std::marker::Send` is not implemented for `(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)>`
   = note: required because it appears within the type `std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)>`
   = note: required because it appears within the type `std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<awc::response::ClientResponse, actix_http::client::error::SendRequestError>> + 'static)>>`
   = note: required because it appears within the type `awc::sender::SendClientRequest`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `(dyn actix_http::error::ResponseError + 'static)` cannot be sent between threads safely
  --> juniper/src/schema.rs:38:1
   |
38 | #[juniper::graphql_object(Context=Context)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn actix_http::error::ResponseError + 'static)` cannot be sent between threads safely
   |
   = help: the trait `std::marker::Send` is not implemented for `(dyn actix_http::error::ResponseError + 'static)`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn actix_http::error::ResponseError + 'static)>`
   = note: required because it appears within the type `std::boxed::Box<(dyn actix_http::error::ResponseError + 'static)>`
   = note: required because it appears within the type `actix_http::error::Error`
   = note: required because it appears within the type `actix_http::client::error::SendRequestError`
   = note: required because it appears within the type `std::option::Option<actix_http::client::error::SendRequestError>`
   = note: required because it appears within the type `awc::sender::SendClientRequest`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>` cannot be sent between threads safely
  --> juniper/src/schema.rs:38:1
   |
38 | #[juniper::graphql_object(Context=Context)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>` cannot be sent between threads safely
   |
   = help: the trait `std::marker::Send` is not implemented for `dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>`
   = note: required because it appears within the type `std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>`
   = note: required because it appears within the type `std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>`
   = note: required because it appears within the type `actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>`
   = note: required because it appears within the type `actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>`
   = note: required because it appears within the type `actix_http::payload::Payload<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>>`
   = note: required because it appears within the type `awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>>>>>>>`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error[E0277]: `(dyn std::any::Any + 'static)` cannot be sent between threads safely
  --> juniper/src/schema.rs:38:1
   |
38 | #[juniper::graphql_object(Context=Context)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn std::any::Any + 'static)` cannot be sent between threads safely
   |
   = help: the trait `std::marker::Send` is not implemented for `(dyn std::any::Any + 'static)`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn std::any::Any + 'static)>`
   = note: required because it appears within the type `std::boxed::Box<(dyn std::any::Any + 'static)>`
   = note: required because it appears within the type `(std::any::TypeId, std::boxed::Box<(dyn std::any::Any + 'static)>)`
   = note: required because of the requirements on the impl of `std::marker::Send` for `hashbrown::raw::RawTable<(std::any::TypeId, std::boxed::Box<(dyn std::any::Any + 'static)>)>`
   = note: required because it appears within the type `hashbrown::map::HashMap<std::any::TypeId, std::boxed::Box<(dyn std::any::Any + 'static)>, std::hash::BuildHasherDefault<fxhash::FxHasher>>`
   = note: required because it appears within the type `std::collections::HashMap<std::any::TypeId, std::boxed::Box<(dyn std::any::Any + 'static)>, std::hash::BuildHasherDefault<fxhash::FxHasher>>`
   = note: required because it appears within the type `actix_http::extensions::Extensions`
   = note: required because of the requirements on the impl of `std::marker::Send` for `std::cell::RefCell<actix_http::extensions::Extensions>`
   = note: required because it appears within the type `actix_http::message::RequestHead`
   = note: required because it appears within the type `awc::request::ClientRequest`
   = note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::string::String, awc::Client, &'r awc::Client, awc::Client, &'s str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't0)>>>>>, &'t1 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't2)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't3)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't4)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't5)>>>>>, ()}]`
   = 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}`
   = note: required because it appears within the type `[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, impl core::future::future::Future, impl core::future::future::Future, ()}]`
   = note: required because it appears within the type `std::future::GenFuture<[static generator@juniper/src/schema.rs:38:1: 38:44 args:&juniper::types::base::Arguments<'_>, executor:&juniper::executor::Executor<'_, '_, schema::Context> 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> {[static generator@juniper/src/schema.rs:38:1: 38:44 args:&'r juniper::types::base::Arguments<'s> for<'t29, 't30, 't31, 't32, 't33, 't34, 't35, 't36> {std::string::String, awc::Client, &'t29 awc::Client, awc::Client, &'t30 str, awc::request::ClientRequest, awc::sender::SendClientRequest, awc::sender::SendClientRequest, (), awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't31)>>>>>, &'t32 mut awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't33)>>>>>, awc::response::ClientResponse<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't34)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't35)>>>>>, awc::response::MessageBody<actix_http::encoding::decoder::Decoder<actix_http::payload::Payload<std::pin::Pin<std::boxed::Box<(dyn futures_core::stream::Stream<Item = std::result::Result<bytes::bytes::Bytes, actix_http::error::PayloadError>> + 't36)>>>>>, ()}], impl core::future::future::Future, impl core::future::future::Future, (), std::result::Result<schema::Human, juniper::executor::FieldError>, std::result::Result<std::option::Option<(&'t4 (), schema::Human)>, juniper::executor::FieldError>, &'t5 (), schema::Human, juniper::executor::Executor<'t6, 't7, ()>, &'t8 juniper::executor::Executor<'t9, 't10, ()>, (), &'t11 (), &'t12 (), &'t13 schema::Human, &'t14 schema::Human, 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 by `futures_util::future::future::FutureExt::boxed`

error: aborting due to 7 previous errors

For more information about this error, try `rustc --explain E0277`.
error: could not compile `juniper-example`.

To learn more, run the command again with --verbose.

@GopherJ
Copy link

GopherJ commented Apr 23, 2020

@arlyon check this:

config: Rc<ClientConfig>,

@Pzixel
Copy link

Pzixel commented Jun 2, 2020

So, any ideas on that? I could try to use archer simply change Rc to Arc if we're ok with that to make it work.

Considering HTTP overhead overall I think there is no much problem in atomic increment overhead. It won't be significant comparing to network issues.

@Pzixel
Copy link

Pzixel commented Jan 23, 2021

As said above I really don't get it.

The first thing is why would you want an actix-web::client that is thread safe?

Because I'd like to register it as app_data and then call from different places.

TLDR: actix-web::client is !Send by design.

Why design is this? Could you show some benefits of doing it this way?

The current issue in a nutshell:

    let something_with_client = Something::new(&env_config.url);
    let server = HttpServer::new(move || {
        let something_with_client = something_with_client .clone();
...
...

error[E0277]: `Rc<awc::ClientConfig>` cannot be sent between threads safely
   --> src\server.rs:47:18
    |
47  |       let server = HttpServer::new(move || {
    |  __________________^^^^^^^^^^^^^^^_-
    | |                  |
    | |                  `Rc<awc::ClientConfig>` cannot be sent between threads safely
...   |
144 | |             ))
145 | |     })
    | |_____- within this `[closure@src\server.rs:47:34: 145:6]`
    |
    = help: within `[closure@src\server.rs:47:34: 145:6]`, the trait `std::marker::Send` is not implemented for `Rc<awc::ClientConfig>`
    = note: required because it appears within the type `actix_web::client::Client`
    = note: required because it appears within the type `AuthClient`
    = note: required because it appears within the type `[closure@src\server.rs:47:34: 145:6]`
    = note: required by `HttpServer::<F, I, S, B>::new`

I'm forced to move creating code somewhere else and create new client for each actor although one shared instance would be just fine.

@bitmage
Copy link

bitmage commented Apr 10, 2024

I think what @Pzixel was looking for is something like this:

https://github.com/actix/examples/blob/master/http-proxy/src/main.rs#L139-L144

Both reqwest and awc can be passed in through app_data() safely it would seem, and this would result in one client (or at least one reference to the client) being created for each actix thread.

Just leaving this note for anyone (like me) who arrives here searching for an answer to this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants