Struct oxide_api::types::Histogramdouble
source · [−]pub struct Histogramdouble {
pub bins: Vec<Bindouble>,
pub n_samples: u64,
pub start_time: DisplayOptionDateTime,
}Expand description
A simple type for managing a histogram metric.
A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their left edges, inclusive. There can’t be any “gaps” in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support.
Note that any gaps, unsorted bins, or non-finite values will result in an error.
Example —–– ```rust use oximeter::histogram::{BinRange, Histogram};
let edges = [0i64, 10, 20]; let mut hist = Histogram::new(&edges).unwrap(); assert_eq!(hist.n_bins(), 4); // One additional bin for the range (20..) assert_eq!(hist.n_samples(), 0); hist.sample(4); hist.sample(100); assert_eq!(hist.n_samples(), 2);
let data = hist.iter().collect::<Vec<_>>(); assert_eq!(data[0].range, BinRange::range(i64::MIN, 0)); // An additional bin for ..0 assert_eq!(data[0].count, 0); // Nothing is in this bin
assert_eq!(data[1].range, BinRange::range(0, 10)); // The range 0..10 assert_eq!(data[1].count, 1); // 4 is sampled into this bin ```
Notes —–
Histograms may be constructed either from their left bin edges, or from a sequence of ranges. In either case, the left-most bin may be converted upon construction. In particular, if the left-most value is not equal to the minimum of the support, a new bin will be added from the minimum to that provided value. If the left-most value is the support’s minimum, because the provided bin was unbounded below, such as (..0), then that bin will be converted into one bounded below, (MIN..0) in this case.
The short of this is that, most of the time, it shouldn’t matter. If one specifies the extremes of the support as their bins, be aware that the left-most may be converted from a BinRange::RangeTo into a BinRange::Range. In other words, the first bin of a histogram is always a Bin::Range or a Bin::RangeFrom after construction. In fact, every bin is one of those variants, the BinRange::RangeTo is only provided as a convenience during construction.
Fields
bins: Vec<Bindouble>n_samples: u64start_time: DisplayOptionDateTimeTrait Implementations
sourceimpl Clone for Histogramdouble
impl Clone for Histogramdouble
sourcefn clone(&self) -> Histogramdouble
fn clone(&self) -> Histogramdouble
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl Debug for Histogramdouble
impl Debug for Histogramdouble
sourceimpl Default for Histogramdouble
impl Default for Histogramdouble
sourcefn default() -> Histogramdouble
fn default() -> Histogramdouble
Returns the “default value” for a type. Read more
sourceimpl<'de> Deserialize<'de> for Histogramdouble
impl<'de> Deserialize<'de> for Histogramdouble
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl JsonSchema for Histogramdouble
impl JsonSchema for Histogramdouble
sourcefn schema_name() -> String
fn schema_name() -> String
The name of the generated JSON Schema. Read more
sourcefn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
sourcefn is_referenceable() -> bool
fn is_referenceable() -> bool
Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
sourceimpl PartialEq<Histogramdouble> for Histogramdouble
impl PartialEq<Histogramdouble> for Histogramdouble
sourcefn eq(&self, other: &Histogramdouble) -> bool
fn eq(&self, other: &Histogramdouble) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourceimpl Serialize for Histogramdouble
impl Serialize for Histogramdouble
sourceimpl Tabled for Histogramdouble
impl Tabled for Histogramdouble
impl StructuralPartialEq for Histogramdouble
Auto Trait Implementations
impl RefUnwindSafe for Histogramdouble
impl Send for Histogramdouble
impl Sync for Histogramdouble
impl Unpin for Histogramdouble
impl UnwindSafe for Histogramdouble
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
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more