Struct ManualClock
pub struct ManualClock { /* private fields */ }Expand description
A clock that only moves when a test moves it.
Shareable across threads without external locking (the time is an atomic), available on every target including wasm, and the reason deterministic tests of heartbeats, deadlines and fail-over do not have to sleep.
use atune_core::clock::{Clock, ManualClock};
let clock = ManualClock::new(1_000);
assert_eq!(clock.now_millis(), 1_000);
clock.advance(500);
assert_eq!(clock.now_millis(), 1_500);
clock.set(0);
assert_eq!(clock.now_millis(), 0);Implementations§
Trait Implementations§
§impl Clock for ManualClock
impl Clock for ManualClock
§fn now_millis(&self) -> u64
fn now_millis(&self) -> u64
The current time, in milliseconds since this clock’s epoch.
§impl Debug for ManualClock
impl Debug for ManualClock
§impl Default for ManualClock
impl Default for ManualClock
§fn default() -> ManualClock
fn default() -> ManualClock
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for ManualClock
impl RefUnwindSafe for ManualClock
impl Send for ManualClock
impl Sync for ManualClock
impl Unpin for ManualClock
impl UnsafeUnpin for ManualClock
impl UnwindSafe for ManualClock
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