Struct oxide_api::types::Histogramint64
source · [−]pub struct Histogramint64 {
pub bins: Vec<Binint64>,
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<Binint64>n_samples: u64start_time: DisplayOptionDateTimeTrait Implementations
sourceimpl Clone for Histogramint64
impl Clone for Histogramint64
sourcefn clone(&self) -> Histogramint64
fn clone(&self) -> Histogramint64
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 Histogramint64
impl Debug for Histogramint64
sourceimpl Default for Histogramint64
impl Default for Histogramint64
sourcefn default() -> Histogramint64
fn default() -> Histogramint64
Returns the “default value” for a type. Read more
sourceimpl<'de> Deserialize<'de> for Histogramint64
impl<'de> Deserialize<'de> for Histogramint64
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 Histogramint64
impl JsonSchema for Histogramint64
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<Histogramint64> for Histogramint64
impl PartialEq<Histogramint64> for Histogramint64
sourcefn eq(&self, other: &Histogramint64) -> bool
fn eq(&self, other: &Histogramint64) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourceimpl Serialize for Histogramint64
impl Serialize for Histogramint64
sourceimpl Tabled for Histogramint64
impl Tabled for Histogramint64
impl StructuralPartialEq for Histogramint64
Auto Trait Implementations
impl RefUnwindSafe for Histogramint64
impl Send for Histogramint64
impl Sync for Histogramint64
impl Unpin for Histogramint64
impl UnwindSafe for Histogramint64
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