# [−]Struct actix_web::actix::actix::fut::StreamAndThen

    #[must_use = "streams do nothing unless polled"]
    pub struct StreamAndThen<S, F, U> where
        U: IntoActorFuture,  { /* fields omitted */ }

A stream combinator which chains a computation onto values produced by a stream.

This structure is produced by the `ActorStream::and_then` method.

## Trait Implementations

###

`impl<S, F, U> Debug for StreamAndThen<S, F, U> where F: Debug, S: Debug, U: Debug + IntoActorFuture, <U as IntoActorFuture>::Future: Debug,`

####

`fn fmt(&self, f: &mut Formatter) -> Result<(), Error>` |

Formats the value using the given formatter. Read more

###

`impl<S, F, U> ActorStream for StreamAndThen<S, F, U> where F: FnMut(<S as ActorStream>::Item, &mut <S as ActorStream>::Actor, &mut <<S as ActorStream>::Actor as Actor>::Context) -> U, S: ActorStream, U: IntoActorFuture<Actor = <S as ActorStream>::Actor, Error = <S as ActorStream>::Error>,`

#### `type Item = <U as IntoActorFuture>::Item`

The type of item this stream will yield on success.

#### `type Error = <S as ActorStream>::Error`

The type of error this stream may generate.

#### `type Actor = <S as ActorStream>::Actor`

The actor within which this stream runs.

####

`fn poll( &mut self, act: &mut <S as ActorStream>::Actor, ctx: &mut <<S as ActorStream>::Actor as Actor>::Context ) -> Result<Async<Option<<U as IntoActorFuture>::Item>>, <S as ActorStream>::Error>` |

####

`fn map<U, F>(self, f: F) -> StreamMap<Self, F> where F: FnMut(Self::Item, &mut Self::Actor, &mut <Self::Actor as Actor>::Context) -> U,` |

Converts a stream of type `T` to a stream of type `U`.

####

`fn map_err<E, F>(self, f: F) -> StreamMapErr<Self, F> where F: FnMut(Self::Error, &mut Self::Actor, &mut <Self::Actor as Actor>::Context) -> E,` |

Converts a stream of error type `T` to a stream of error type `E`.

####

`fn then<F, U>(self, f: F) -> StreamThen<Self, F, U> where F: FnMut(Result<Self::Item, Self::Error>, &mut Self::Actor, &mut <Self::Actor as Actor>::Context) -> U, U: IntoActorFuture<Actor = Self::Actor>,` |

Chain on a computation for when a value is ready, passing the resulting item to the provided closure `f`. Read more

####

`fn and_then<F, U>(self, f: F) -> StreamAndThen<Self, F, U> where F: FnMut(Self::Item, &mut Self::Actor, &mut <Self::Actor as Actor>::Context) -> U, U: IntoActorFuture<Error = Self::Error, Actor = Self::Actor>,` |

Chain on a computation for when a value is ready, passing the successful results to the provided closure `f`. Read more

####

`fn fold<F, T, Fut>(self, init: T, f: F) -> StreamFold<Self, F, Fut, T> where F: FnMut(T, Self::Item, &mut Self::Actor, &mut <Self::Actor as Actor>::Context) -> Fut, Fut: IntoActorFuture<Actor = Self::Actor, Item = T>, Self::Error: From<<Fut as IntoActorFuture>::Error>,` |

Execute an accumulating computation over a stream, collecting all the values into one final result. Read more

####

`fn timeout(self, timeout: Duration, err: Self::Error) -> StreamTimeout<Self> where Self::Error: Clone,` |

Add timeout to stream. Read more

####

`fn finish(self) -> StreamFinish<Self>` |

Converts a stream to a future that resolves when stream finishes.

## Auto Trait Implementations

###

`impl<S, F, U> Send for StreamAndThen<S, F, U> where F: Send, S: Send, <U as IntoActorFuture>::Future: Send,`

###

`impl<S, F, U> Sync for StreamAndThen<S, F, U> where F: Sync, S: Sync, <U as IntoActorFuture>::Future: Sync,`

## Blanket Implementations

###

`impl<T> From for T`

[src]

####

`fn from(t: T) -> T`

[src]

Performs the conversion.

###

`impl<T, U> Into for T where U: From<T>,`

[src]

####

`fn into(self) -> U`

[src]

Performs the conversion.

###

`impl<T, U> TryFrom for T where T: From<U>,`

[src]

#### `type Error = !`

🔬 This is a nightly-only experimental API. (`try_from`)

The type returned in the event of a conversion error.

####

`fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>`

[src]

🔬 This is a nightly-only experimental API. (`try_from`)

Performs the conversion.

###

`impl<T> Borrow for T where T: ?Sized,`

[src]

####

`fn borrow(&self) -> &T`

[src]

Immutably borrows from an owned value. Read more

###

`impl<T> BorrowMut for T where T: ?Sized,`

[src]

####

`fn borrow_mut(&mut self) -> &mut T`

[src]

Mutably borrows from an owned value. Read more

###

`impl<T, U> TryInto for T where U: TryFrom<T>,`

[src]

#### `type Error = <U as TryFrom<T>>::Error`

🔬 This is a nightly-only experimental API. (`try_from`)

The type returned in the event of a conversion error.

####

`fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>`

[src]

🔬 This is a nightly-only experimental API. (`try_from`)

Performs the conversion.

###

`impl<T> Any for T where T: 'static + ?Sized,`

[src]

####

`fn get_type_id(&self) -> TypeId`

[src]

🔬 This is a nightly-only experimental API. (`get_type_id`)

this method will likely be replaced by an associated static

Gets the `TypeId` of `self`. Read more

###

`impl<T> Erased for T`

# 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`)

Search multiple things at once by splitting your query with comma (e.g. `str,u8` or `String,struct:Vec,test`)