pub struct ManuallyAdvancedTimeSource(/* private fields */);Available on crate feature
test-util only.Expand description
Dummy timesource that is loaded with one time, but you can clone it and further modify the time and elapsed Instant duration via a shared handle
Implementations§
Source§impl ManuallyAdvancedTimeSource
impl ManuallyAdvancedTimeSource
Sourcepub fn at_time(time: impl Into<SystemTime>) -> Self
pub fn at_time(time: impl Into<SystemTime>) -> Self
Create a new ManuallyAdvancedTimeSource that is started with the given time.
You can subsequently call Self::update_time to modify the loaded time.
§Arguments
time- The SystemTime that this source will initially return
§Returns
A new ManuallyAdvancedTimeSource initialized with the given time
§Examples
use metrique_timesource::{TimeSource, fakes::ManuallyAdvancedTimeSource};
use std::time::UNIX_EPOCH;
let dummy_time = ManuallyAdvancedTimeSource::at_time(UNIX_EPOCH);
let ts = TimeSource::custom(dummy_time);
assert_eq!(ts.system_time(), UNIX_EPOCH);Sourcepub fn update_time(&self, time: impl Into<SystemTime>)
pub fn update_time(&self, time: impl Into<SystemTime>)
Update the SystemTime loaded into the ManuallyAdvancedTimeSource.
§Examples
use metrique_timesource::{TimeSource, fakes::ManuallyAdvancedTimeSource};
use std::time::{Duration, UNIX_EPOCH};
// initial time is UNIX_EPOCH
let dummy_time = ManuallyAdvancedTimeSource::at_time(UNIX_EPOCH);
let ts = TimeSource::custom(dummy_time.clone());
assert_eq!(ts.system_time(), UNIX_EPOCH);
let new_timestamp = UNIX_EPOCH + Duration::from_secs(100);
dummy_time.update_time(new_timestamp);
assert_eq!(ts.system_time(), new_timestamp);Sourcepub fn update_instant(&self, elapsed: Duration)
pub fn update_instant(&self, elapsed: Duration)
Update the Instant loaded into the ManuallyAdvancedTimeSource by moving it forward by a duration.
§Examples
use metrique_timesource::{TimeSource, fakes::ManuallyAdvancedTimeSource};
use std::time::{Duration, UNIX_EPOCH};
// initial time is UNIX_EPOCH
let dummy_time = ManuallyAdvancedTimeSource::at_time(UNIX_EPOCH);
let ts = TimeSource::custom(dummy_time.clone());
let instant = ts.instant();
let elapsed = Duration::from_secs(100);
dummy_time.update_instant(elapsed);
assert_eq!(instant.elapsed(), elapsed);Trait Implementations§
Source§impl Clone for ManuallyAdvancedTimeSource
impl Clone for ManuallyAdvancedTimeSource
Source§impl Debug for ManuallyAdvancedTimeSource
impl Debug for ManuallyAdvancedTimeSource
Auto Trait Implementations§
impl Freeze for ManuallyAdvancedTimeSource
impl RefUnwindSafe for ManuallyAdvancedTimeSource
impl Send for ManuallyAdvancedTimeSource
impl Sync for ManuallyAdvancedTimeSource
impl Unpin for ManuallyAdvancedTimeSource
impl UnsafeUnpin for ManuallyAdvancedTimeSource
impl UnwindSafe for ManuallyAdvancedTimeSource
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