Struct Measured
pub struct Measured { /* private fields */ }Expand description
One value as the app knows it: a measurement with provenance, or the reason it has none.
Implementations§
§impl Measured
impl Measured
pub fn known(
measure: Measure,
value: impl Into<String>,
source: impl Into<String>,
as_of: SystemTime,
expected: Option<Duration>,
) -> Measured
pub fn known( measure: Measure, value: impl Into<String>, source: impl Into<String>, as_of: SystemTime, expected: Option<Duration>, ) -> Measured
A reading of value in measure, taken at as_of from source.
expected is how long the reading is good for before it is stale;
None means the app has no interval to judge it by.
pub fn unknown(measure: Measure, reason: impl Into<String>) -> Measured
pub fn unknown(measure: Measure, reason: impl Into<String>) -> Measured
The designed “we did not measure this” state: an em dash and why.
pub fn value(&self) -> Option<&str>
pub fn value(&self) -> Option<&str>
The measured value, or None when nothing was measured. Never Some
for an unknown fact: zero is a measurement like any other.
pub fn value_or_dash(&self) -> &str
pub fn value_or_dash(&self) -> &str
The value in a value position: the reading, or the em dash that means “not known” (never a zero).
pub fn as_of(&self) -> Option<SystemTime>
pub fn as_of(&self) -> Option<SystemTime>
When the reading was taken.
pub fn unknown_reason(&self) -> Option<&str>
pub fn unknown_reason(&self) -> Option<&str>
Why the fact is unknown, when it is.
pub fn age(&self, now: SystemTime) -> Option<Duration>
pub fn age(&self, now: SystemTime) -> Option<Duration>
How old the reading is at now, never negative.
pub fn is_stale(&self, now: SystemTime) -> bool
pub fn is_stale(&self, now: SystemTime) -> bool
Whether the reading is older than the interval it was measured for. An unknown fact is stale by definition; a fact with no expected interval is never judged stale.
pub fn caption(&self, now: SystemTime) -> String
pub fn caption(&self, now: SystemTime) -> String
Trait Implementations§
impl Eq for Measured
impl StructuralPartialEq for Measured
Auto Trait Implementations§
impl Freeze for Measured
impl RefUnwindSafe for Measured
impl Send for Measured
impl Sync for Measured
impl Unpin for Measured
impl UnsafeUnpin for Measured
impl UnwindSafe for Measured
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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>
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>
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