     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15

    //! Definition of the `Option` (optional step) combinator

    use {Future, Poll, Async};

    impl<F, T, E> Future for Option<F> where F: Future<Item=T, Error=E> {
        type Item = Option<T>;
        type Error = E;

        fn poll(&mut self) -> Poll<Option<T>, E> {
            match *self {
                None => Ok(Async::Ready(None)),
                Some(ref mut x) => x.poll().map(|x| x.map(Some)),
            }
        }
    }

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)