Fix type declaration

This commit is contained in:
k-nasa 2019-10-26 01:44:48 +09:00
parent 8932cecec7
commit 61b7a09c70

View file

@ -34,8 +34,9 @@ where
impl<S, U, F> Stream for FlatMap<S, U, S::Item, F> impl<S, U, F> Stream for FlatMap<S, U, S::Item, F>
where where
S: Stream<Item: IntoStream<IntoStream = U, Item = U::Item>> + std::marker::Unpin, S: Stream,
U: Stream + std::marker::Unpin, S::Item: IntoStream<IntoStream = U, Item = U::Item>,
U: Stream,
F: FnMut(S::Item) -> U, F: FnMut(S::Item) -> U,
{ {
type Item = U::Item; type Item = U::Item;
@ -58,7 +59,11 @@ pin_project! {
} }
} }
impl<S: Stream<Item: IntoStream>> Flatten<S, S::Item> { impl<S> Flatten<S, S::Item>
where
S: Stream,
S::Item: IntoStream,
{
pub fn new(stream: S) -> Flatten<S, S::Item> { pub fn new(stream: S) -> Flatten<S, S::Item> {
Flatten { Flatten {
inner: FlattenCompat::new(stream), inner: FlattenCompat::new(stream),
@ -68,8 +73,9 @@ impl<S: Stream<Item: IntoStream>> Flatten<S, S::Item> {
impl<S, U> Stream for Flatten<S, <S::Item as IntoStream>::IntoStream> impl<S, U> Stream for Flatten<S, <S::Item as IntoStream>::IntoStream>
where where
S: Stream<Item: IntoStream<IntoStream = U, Item = U::Item>> + std::marker::Unpin, S: Stream,
U: Stream + std::marker::Unpin, S::Item: IntoStream<IntoStream = U, Item = U::Item>,
U: Stream,
{ {
type Item = U::Item; type Item = U::Item;
@ -83,7 +89,9 @@ pin_project! {
/// this type. /// this type.
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
struct FlattenCompat<S, U> { struct FlattenCompat<S, U> {
#[pin]
stream: S, stream: S,
#[pin]
frontiter: Option<U>, frontiter: Option<U>,
} }
} }
@ -100,8 +108,9 @@ impl<S, U> FlattenCompat<S, U> {
impl<S, U> Stream for FlattenCompat<S, U> impl<S, U> Stream for FlattenCompat<S, U>
where where
S: Stream<Item: IntoStream<IntoStream = U, Item = U::Item>> + std::marker::Unpin, S: Stream,
U: Stream + std::marker::Unpin, S::Item: IntoStream<IntoStream = U, Item = U::Item>,
U: Stream,
{ {
type Item = U::Item; type Item = U::Item;