Struct tor_checkable::timed::TimerangeBound
source ·
[−]pub struct TimerangeBound<T> { /* fields omitted */ }
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
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.
Adjust this time-range bound to tolerate an expiration time farther in the future.
Adjust this time-range bound to tolerate an initial validity time farther in the past.
Trait Implementations
type Error = TimeValidityError
type Error = TimeValidityError
An error type that’s returned when the object is not timely.
Check whether this object is valid at a given time. Read more
Return the underlying object without checking whether it’s valid.
Unwrap this Timebound object if it is valid at a given time.
Unwrap this Timebound object if it is valid now.
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