title: How to process a vector as an asynchronous stream?
body: <p>In my <a href="https://github.com/Riduidel/rrss2imap" rel="nofollow noreferrer">RSS reader project</a>, I want to read my RSS feeds asynchronously. Currently, they're read synchronously thanks to <a href="https://github.com/Riduidel/rrss2imap/blob/master/src/store.rs#L135-L138" rel="nofollow noreferrer">this code block</a></p>
  <pre><code>self.feeds = self
      .feeds
      .iter()
      .map(|f| f.read(&amp;self.settings))
      .collect::&lt;Vec&lt;Feed&gt;&gt;();
  </code></pre>
  <p>I want to make that code asynchronous, because it will allow me to better handle poor web server responses.</p>
  <p>I understand I can use a <code>Stream</code> that I can create from my <code>Vec</code> using <code>stream::from_iter(...)</code> which transforms the code into something like</p>
  <pre><code>self.feeds = stream::from_iter(self.feeds.iter())
      .map(|f| f.read(&amp;self.settings))
      // ???
      .collect::&lt;Vec&lt;Feed&gt;&gt;()
  }
  </code></pre>
  <p>But then, I have two questions</p>
  <ol>
  <li>How to have results joined into a <code>Vec</code> (which is a synchronous struct)?</li>
  <li>How to execute that stream? I was thinking about using <code>task::spawn</code> but it doesn't seems to work ...</li>
  </ol>