use core::cmp; use core::pin::Pin; use futures_core::ready; use futures_core::stream::{FusedStream, Stream}; use futures_core::task::{Context, Poll}; #[cfg(feature = "sink")] use futures_sink::Sink; use pin_project_lite::pin_project;
pin_project! { /// Stream for the [`take`](super::StreamExt::take) method. #[derive(Debug)] #[must_use = "streams do nothing unless polled"] pubstruct Take<St> { #[pin]
stream: St,
remaining: usize,
}
}
let upper = match upper {
Some(x) if x < self.remaining => Some(x),
_ => Some(self.remaining),
};
(lower, upper)
}
}
impl<St> FusedStream for Take<St> where
St: FusedStream,
{ fn is_terminated(&self) -> bool { self.remaining == 0 || self.stream.is_terminated()
}
}
// Forwarding impl of Sink from the underlying stream #[cfg(feature = "sink")] impl<S, Item> Sink<Item> for Take<S> where
S: Stream + Sink<Item>,
{ type Error = S::Error;
delegate_sink!(stream, Item);
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-18)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.