pub struct TimeEventAccumulator { /* private fields */ }Expand description
Provides a means of accumulating and draining time event handlers using a priority queue.
Events are maintained in timestamp order using a binary heap, allowing efficient retrieval of the next event to process.
Implementations§
Source§impl TimeEventAccumulator
impl TimeEventAccumulator
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new TimeEventAccumulator instance.
Sourcepub fn advance_clock(
&mut self,
clock: &mut TestClock,
to_time_ns: UnixNanos,
set_time: bool,
)
pub fn advance_clock( &mut self, clock: &mut TestClock, to_time_ns: UnixNanos, set_time: bool, )
Advance the given clock to the to_time_ns and push events to the heap.
Sourcepub fn peek_next_time(&self) -> Option<UnixNanos>
pub fn peek_next_time(&self) -> Option<UnixNanos>
Peek at the next event timestamp without removing it.
Returns None if the heap is empty.
Sourcepub fn pop_next_at_or_before(
&mut self,
ts: UnixNanos,
) -> Option<TimeEventHandler>
pub fn pop_next_at_or_before( &mut self, ts: UnixNanos, ) -> Option<TimeEventHandler>
Pop the next event if its timestamp is at or before ts.
Returns None if the heap is empty or the next event is after ts.
Trait Implementations§
Source§impl Debug for TimeEventAccumulator
impl Debug for TimeEventAccumulator
Source§impl Default for TimeEventAccumulator
impl Default for TimeEventAccumulator
Source§fn default() -> Self
fn default() -> Self
Creates a new default TimeEventAccumulator instance.
Auto Trait Implementations§
impl Freeze for TimeEventAccumulator
impl !RefUnwindSafe for TimeEventAccumulator
impl Send for TimeEventAccumulator
impl Sync for TimeEventAccumulator
impl Unpin for TimeEventAccumulator
impl !UnwindSafe for TimeEventAccumulator
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more