title: The trait cannot be made into an object
body: <p>I have the following code:</p>
  
  <pre><code>extern crate futures; // 0.1.24
  
  use futures::Future;
  use std::io;
  
  struct Context;
  
  pub trait MyTrait {
      fn receive(context: Context) -&gt; Future&lt;Item = (), Error = io::Error&gt;;
  }
  
  pub struct MyStruct {
      my_trait: MyTrait,
  }
  </code></pre>
  
  <p>When I try to compile it I get the error message: </p>
  
  <pre class="lang-none prettyprint-override"><code>error[E0038]: the trait `MyTrait` cannot be made into an object
    --&gt; src/lib.rs:13:5
     |
  13 |     my_trait: MyTrait,
     |     ^^^^^^^^^^^^^^^^^ the trait `MyTrait` cannot be made into an object
     |
     = note: method `receive` has no receiver
  </code></pre>
  
  <p>I think I know why it happens, but how do I refer to the trait from the struct? Is it possible? Maybe there are other ways to implement the same behavior?</p>