Struct tor_checkable::timed::TimerangeBound
source · [−]pub struct TimerangeBound<T> { /* private fields */ }
Expand description
A TimeBound object that is valid for a specified range of time.
The range is given as an argument, as in t1..t2
.
use std::time::{SystemTime, Duration};
use tor_checkable::{Timebound, TimeValidityError, timed::TimerangeBound};
let now = SystemTime::now();
let one_hour = Duration::new(3600, 0);
// This seven is only valid for another hour!
let seven = TimerangeBound::new(7_u32, ..now+one_hour);
assert_eq!(seven.check_valid_at(&now).unwrap(), 7);
// That consumed the previous seven. Try another one.
let seven = TimerangeBound::new(7_u32, ..now+one_hour);
assert_eq!(seven.check_valid_at(&(now+2*one_hour)),
Err(TimeValidityError::Expired(one_hour)));
Implementations
sourceimpl<T> TimerangeBound<T>
impl<T> TimerangeBound<T>
sourcepub fn new<U>(obj: T, range: U) -> Self where
U: RangeBounds<SystemTime>,
pub fn new<U>(obj: T, range: U) -> Self where
U: RangeBounds<SystemTime>,
Construct a new TimerangeBound object from a given object and range.
Note that we do not distinguish between inclusive and
exclusive bounds: x..y
and x..=y
are treated the same
here.
sourcepub fn extend_tolerance(self, d: Duration) -> Self
pub fn extend_tolerance(self, d: Duration) -> Self
Adjust this time-range bound to tolerate an expiration time farther in the future.
sourcepub fn extend_pre_tolerance(self, d: Duration) -> Self
pub fn extend_pre_tolerance(self, d: Duration) -> Self
Adjust this time-range bound to tolerate an initial validity time farther in the past.
Trait Implementations
sourceimpl<T> Timebound<T> for TimerangeBound<T>
impl<T> Timebound<T> for TimerangeBound<T>
type Error = TimeValidityError
type Error = TimeValidityError
An error type that’s returned when the object is not timely.
sourcefn is_valid_at(&self, t: &SystemTime) -> Result<(), Self::Error>
fn is_valid_at(&self, t: &SystemTime) -> Result<(), Self::Error>
Check whether this object is valid at a given time. Read more
sourcefn dangerously_assume_timely(self) -> T
fn dangerously_assume_timely(self) -> T
Return the underlying object without checking whether it’s valid.
sourcefn check_valid_at(self, t: &SystemTime) -> Result<T, Self::Error>
fn check_valid_at(self, t: &SystemTime) -> Result<T, Self::Error>
Unwrap this Timebound object if it is valid at a given time.
sourcefn check_valid_now(self) -> Result<T, Self::Error>
fn check_valid_now(self) -> Result<T, Self::Error>
Unwrap this Timebound object if it is valid now.
sourcefn check_valid_at_opt(self, t: Option<SystemTime>) -> Result<T, Self::Error>
fn check_valid_at_opt(self, t: Option<SystemTime>) -> Result<T, Self::Error>
Unwrap this object if it is valid at the provided time t. If no time is provided, check the object at the current time. Read more
Auto Trait Implementations
impl<T> RefUnwindSafe for TimerangeBound<T> where
T: RefUnwindSafe,
impl<T> Send for TimerangeBound<T> where
T: Send,
impl<T> Sync for TimerangeBound<T> where
T: Sync,
impl<T> Unpin for TimerangeBound<T> where
T: Unpin,
impl<T> UnwindSafe for TimerangeBound<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more