title: I can't capture the DB reference
body: <p>I'm trying to create an API using Actix-web, async-grahpql and sqlx with postgresql</p>
  <p>In the <code>QueryRoot</code> of the async-graphql I am trying to capture the reference of the DB and make the query the database with sqlx, but it gives me an error</p>
  <pre class="lang-none prettyprint-override"><code> let items = Todo::list(&amp;pool).await?;
     |                                ^^^^^ expected struct `sqlx::Pool`, found enum `std::result::Result`
  </code></pre>
  <p>Here I want to capture the reference</p>
  <pre><code>use crate::todo::*;
  use async_graphql::{Context, FieldResult};
  use sqlx::postgres::PgPool;
  
  pub struct QueryRoot;
  
  #[async_graphql::Object]
  impl QueryRoot {
      async fn todos(&amp;self, ctx: &amp;Context&lt;'_&gt;) -&gt; FieldResult&lt;Vec&lt;Todo&gt;&gt; {
          let pool = ctx.data::&lt;PgPool&gt;();
          let items = Todo::list(&amp;pool).await?; //&lt;-- This line generates an error
   
          Ok(items)
      }
  }
  </code></pre>
  <p>Here I define the references</p>
  <pre><code>pub fn run(listener: TcpListener, db_pool: PgPool) -&gt; Result&lt;Server, std::io::Error&gt; {
  
      let data_db_pool = Data::new(db_pool);
  
      //GraphQL
      let schema = Schema::build(QueryRoot, MutationRoot, EmptySubscription)
          .data(data_db_pool.clone()) //&lt;- DB reference
          .finish();
  
      let server = HttpServer::new(move || {
          App::new()
              .app_data(db_pool.clone()) //&lt;- DB reference
              .data(schema.clone())
              .route(&quot;/graphql&quot;, web::post().to(graphql))
              .route(&quot;/graphql&quot;, web::get().to(graphql_playground))
      })
      .listen(listener)?
      .run();
      Ok(server)
  }
  </code></pre>
  <p>What am I doing wrong? The complete code can be found <a href="https://github.com/benjamingb/rust-gql" rel="nofollow noreferrer">here</a>.</p>