use core::fmt; use core::pin::Pin; use futures_core::future::Future; 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 [`then`](super::StreamExt::then) method. #[must_use = "streams do nothing unless polled"] pubstruct Then<St, Fut, F> { #[pin]
stream: St, #[pin]
future: Option<Fut>,
f: F,
}
}
fn size_hint(&self) -> (usize, Option<usize>) { let future_len = usize::from(self.future.is_some()); let (lower, upper) = self.stream.size_hint(); let lower = lower.saturating_add(future_len); let upper = match upper {
Some(x) => x.checked_add(future_len),
None => None,
};
(lower, upper)
}
}
// Forwarding impl of Sink from the underlying stream #[cfg(feature = "sink")] impl<S, Fut, F, Item> Sink<Item> for Then<S, Fut, F> where
S: 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.