Struct tokio_stream::stream_ext::throttle::Throttle
source · pub struct Throttle<T> {
delay: Sleep,
duration: Duration,
has_delayed: bool,
stream: T,
}
Expand description
Stream for the throttle
function. This object is !Unpin
. If you need it to
implement Unpin
you can pin your throttle like this: Box::pin(your_throttle)
.
Fields§
§delay: Sleep
§duration: Duration
§has_delayed: bool
§stream: T
Implementations§
source§impl<T> Throttle<T>
impl<T> Throttle<T>
sourcepub fn get_ref(&self) -> &T
pub fn get_ref(&self) -> &T
Acquires a reference to the underlying stream that this combinator is pulling from.
sourcepub fn get_mut(&mut self) -> &mut T
pub fn get_mut(&mut self) -> &mut T
Acquires a mutable reference to the underlying stream that this combinator is pulling from.
Note that care must be taken to avoid tampering with the state of the stream which may otherwise confuse this combinator.
sourcepub fn into_inner(self) -> T
pub fn into_inner(self) -> T
Consumes this combinator, returning the underlying stream.
Note that this may discard intermediate state of this combinator, so care should be taken to avoid losing resources when this is called.
Trait Implementations§
source§impl<T: Stream> Stream for Throttle<T>
impl<T: Stream> Stream for Throttle<T>
impl<'__pin, T> Unpin for Throttle<T>where
PinnedFieldsOf<__Origin<'__pin, T>>: Unpin,
Auto Trait Implementations§
impl<T> !Freeze for Throttle<T>
impl<T> !RefUnwindSafe for Throttle<T>
impl<T> Send for Throttle<T>where
T: Send,
impl<T> Sync for Throttle<T>where
T: Sync,
impl<T> !UnwindSafe for Throttle<T>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<St> StreamExt for St
impl<St> StreamExt for St
source§fn next(&mut self) -> Next<'_, Self> ⓘwhere
Self: Unpin,
fn next(&mut self) -> Next<'_, Self> ⓘwhere
Self: Unpin,
Consumes and returns the next value in the stream or
None
if the
stream is finished. Read moresource§fn try_next<T, E>(&mut self) -> TryNext<'_, Self> ⓘ
fn try_next<T, E>(&mut self) -> TryNext<'_, Self> ⓘ
Consumes and returns the next item in the stream. If an error is
encountered before the next item, the error is returned instead. Read more
source§fn map<T, F>(self, f: F) -> Map<Self, F>
fn map<T, F>(self, f: F) -> Map<Self, F>
Maps this stream’s items to a different type, returning a new stream of
the resulting type. Read more
source§fn map_while<T, F>(self, f: F) -> MapWhile<Self, F>
fn map_while<T, F>(self, f: F) -> MapWhile<Self, F>
Map this stream’s items to a different type for as long as determined by
the provided closure. A stream of the target type will be returned,
which will yield elements until the closure returns
None
. Read moresource§fn then<F, Fut>(self, f: F) -> Then<Self, Fut, F>
fn then<F, Fut>(self, f: F) -> Then<Self, Fut, F>
Maps this stream’s items asynchronously to a different type, returning a
new stream of the resulting type. Read more
source§fn merge<U>(self, other: U) -> Merge<Self, U>
fn merge<U>(self, other: U) -> Merge<Self, U>
Combine two streams into one by interleaving the output of both as it
is produced. Read more
source§fn filter<F>(self, f: F) -> Filter<Self, F>
fn filter<F>(self, f: F) -> Filter<Self, F>
Filters the values produced by this stream according to the provided
predicate. Read more
source§fn filter_map<T, F>(self, f: F) -> FilterMap<Self, F>
fn filter_map<T, F>(self, f: F) -> FilterMap<Self, F>
Filters the values produced by this stream while simultaneously mapping
them to a different type according to the provided closure. Read more
source§fn fuse(self) -> Fuse<Self>where
Self: Sized,
fn fuse(self) -> Fuse<Self>where
Self: Sized,
Creates a stream which ends after the first
None
. Read moresource§fn take(self, n: usize) -> Take<Self>where
Self: Sized,
fn take(self, n: usize) -> Take<Self>where
Self: Sized,
Creates a new stream of at most
n
items of the underlying stream. Read moresource§fn take_while<F>(self, f: F) -> TakeWhile<Self, F>
fn take_while<F>(self, f: F) -> TakeWhile<Self, F>
Take elements from this stream while the provided predicate
resolves to
true
. Read moresource§fn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
fn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
Creates a new stream that will skip the
n
first items of the
underlying stream. Read moresource§fn skip_while<F>(self, f: F) -> SkipWhile<Self, F>
fn skip_while<F>(self, f: F) -> SkipWhile<Self, F>
Skip elements from the underlying stream while the provided predicate
resolves to
true
. Read moresource§fn all<F>(&mut self, f: F) -> AllFuture<'_, Self, F> ⓘ
fn all<F>(&mut self, f: F) -> AllFuture<'_, Self, F> ⓘ
Tests if every element of the stream matches a predicate. Read more
source§fn any<F>(&mut self, f: F) -> AnyFuture<'_, Self, F> ⓘ
fn any<F>(&mut self, f: F) -> AnyFuture<'_, Self, F> ⓘ
Tests if any element of the stream matches a predicate. Read more
source§fn chain<U>(self, other: U) -> Chain<Self, U>
fn chain<U>(self, other: U) -> Chain<Self, U>
Combine two streams into one by first returning all values from the
first stream then all values from the second stream. Read more
source§fn fold<B, F>(self, init: B, f: F) -> FoldFuture<Self, B, F> ⓘ
fn fold<B, F>(self, init: B, f: F) -> FoldFuture<Self, B, F> ⓘ
A combinator that applies a function to every element in a stream
producing a single, final value. Read more
source§fn collect<T>(self) -> Collect<Self, T> ⓘ
fn collect<T>(self) -> Collect<Self, T> ⓘ
Drain stream pushing all emitted values into a collection. Read more
source§fn timeout(self, duration: Duration) -> Timeout<Self>where
Self: Sized,
fn timeout(self, duration: Duration) -> Timeout<Self>where
Self: Sized,
Applies a per-item timeout to the passed stream. Read more
source§fn timeout_repeating(self, interval: Interval) -> TimeoutRepeating<Self>where
Self: Sized,
fn timeout_repeating(self, interval: Interval) -> TimeoutRepeating<Self>where
Self: Sized,
Applies a per-item timeout to the passed stream. Read more
source§fn throttle(self, duration: Duration) -> Throttle<Self>where
Self: Sized,
fn throttle(self, duration: Duration) -> Throttle<Self>where
Self: Sized,
Slows down a stream by enforcing a delay between items. Read more
source§fn chunks_timeout(
self,
max_size: usize,
duration: Duration,
) -> ChunksTimeout<Self>where
Self: Sized,
fn chunks_timeout(
self,
max_size: usize,
duration: Duration,
) -> ChunksTimeout<Self>where
Self: Sized,
Batches the items in the given stream using a maximum duration and size for each batch. Read more