#[repr(C)]pub struct TimeSeriesMetrics {Show 17 fields
pub id: Uuid,
pub account_id: u16,
pub period_count: u16,
pub granularity: TimeGranularity,
pub _pad: [u8; 3],
pub trend_coefficient: f64,
pub trend_intercept: f64,
pub trend_r_squared: f64,
pub volatility: f64,
pub coefficient_of_variation: f64,
pub sma: f64,
pub ema: f64,
pub current_value: f64,
pub forecasted_value: f64,
pub forecast_ci: f64,
pub period_start: HybridTimestamp,
pub flags: TimeSeriesFlags,
}Expand description
Time series metrics for trend/volatility analysis.
Fields§
§id: UuidMetrics identifier
account_id: u16Account this belongs to
period_count: u16Number of periods in the series
granularity: TimeGranularityTime granularity
_pad: [u8; 3]Padding
trend_coefficient: f64Linear trend slope (OLS)
trend_intercept: f64Trend intercept
trend_r_squared: f64R-squared for trend fit
volatility: f64Standard deviation of values
coefficient_of_variation: f64Coefficient of variation (std_dev / mean)
sma: f64Simple moving average (last period)
ema: f64Exponential moving average (last period)
current_value: f64Most recent value
forecasted_value: f64Forecasted next value
forecast_ci: f64Forecast confidence interval (95%)
period_start: HybridTimestampStart of the time series period.
flags: TimeSeriesFlagsTime series property flags.
Implementations§
Source§impl TimeSeriesMetrics
impl TimeSeriesMetrics
Sourcepub fn new(account_id: u16, granularity: TimeGranularity) -> Self
pub fn new(account_id: u16, granularity: TimeGranularity) -> Self
Create new time series metrics for an account.
Sourcepub fn is_increasing(&self) -> bool
pub fn is_increasing(&self) -> bool
Check if there’s a significant upward trend.
Sourcepub fn is_decreasing(&self) -> bool
pub fn is_decreasing(&self) -> bool
Check if there’s a significant downward trend.
Sourcepub fn is_volatile(&self) -> bool
pub fn is_volatile(&self) -> bool
Check if volatility is high (CV > 0.5).
Trait Implementations§
Source§impl Archive for TimeSeriesMetricswhere
Uuid: Archive,
u16: Archive,
TimeGranularity: Archive,
[u8; 3]: Archive,
f64: Archive,
HybridTimestamp: Archive,
TimeSeriesFlags: Archive,
impl Archive for TimeSeriesMetricswhere
Uuid: Archive,
u16: Archive,
TimeGranularity: Archive,
[u8; 3]: Archive,
f64: Archive,
HybridTimestamp: Archive,
TimeSeriesFlags: Archive,
Source§type Archived = ArchivedTimeSeriesMetrics
type Archived = ArchivedTimeSeriesMetrics
The archived representation of this type. Read more
Source§type Resolver = TimeSeriesMetricsResolver
type Resolver = TimeSeriesMetricsResolver
The resolver for this type. It must contain all the additional information from serializing
needed to make the archived type from the normal type.
Source§impl Clone for TimeSeriesMetrics
impl Clone for TimeSeriesMetrics
Source§fn clone(&self) -> TimeSeriesMetrics
fn clone(&self) -> TimeSeriesMetrics
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TimeSeriesMetrics
impl Debug for TimeSeriesMetrics
Source§impl<__D: Fallible + ?Sized> Deserialize<TimeSeriesMetrics, __D> for Archived<TimeSeriesMetrics>where
Uuid: Archive,
Archived<Uuid>: Deserialize<Uuid, __D>,
u16: Archive,
Archived<u16>: Deserialize<u16, __D>,
TimeGranularity: Archive,
Archived<TimeGranularity>: Deserialize<TimeGranularity, __D>,
[u8; 3]: Archive,
Archived<[u8; 3]>: Deserialize<[u8; 3], __D>,
f64: Archive,
Archived<f64>: Deserialize<f64, __D>,
HybridTimestamp: Archive,
Archived<HybridTimestamp>: Deserialize<HybridTimestamp, __D>,
TimeSeriesFlags: Archive,
Archived<TimeSeriesFlags>: Deserialize<TimeSeriesFlags, __D>,
impl<__D: Fallible + ?Sized> Deserialize<TimeSeriesMetrics, __D> for Archived<TimeSeriesMetrics>where
Uuid: Archive,
Archived<Uuid>: Deserialize<Uuid, __D>,
u16: Archive,
Archived<u16>: Deserialize<u16, __D>,
TimeGranularity: Archive,
Archived<TimeGranularity>: Deserialize<TimeGranularity, __D>,
[u8; 3]: Archive,
Archived<[u8; 3]>: Deserialize<[u8; 3], __D>,
f64: Archive,
Archived<f64>: Deserialize<f64, __D>,
HybridTimestamp: Archive,
Archived<HybridTimestamp>: Deserialize<HybridTimestamp, __D>,
TimeSeriesFlags: Archive,
Archived<TimeSeriesFlags>: Deserialize<TimeSeriesFlags, __D>,
Source§fn deserialize(
&self,
deserializer: &mut __D,
) -> Result<TimeSeriesMetrics, __D::Error>
fn deserialize( &self, deserializer: &mut __D, ) -> Result<TimeSeriesMetrics, __D::Error>
Deserializes using the given deserializer
Auto Trait Implementations§
impl Freeze for TimeSeriesMetrics
impl RefUnwindSafe for TimeSeriesMetrics
impl Send for TimeSeriesMetrics
impl Sync for TimeSeriesMetrics
impl Unpin for TimeSeriesMetrics
impl UnwindSafe for TimeSeriesMetrics
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
Source§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
The archived counterpart of this type. Unlike
Archive, it may be unsized. Read moreSource§type MetadataResolver = ()
type MetadataResolver = ()
The resolver for the metadata of this type. Read more
Source§unsafe fn resolve_metadata(
&self,
_: usize,
_: <T as ArchiveUnsized>::MetadataResolver,
_: *mut <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata,
)
unsafe fn resolve_metadata( &self, _: usize, _: <T as ArchiveUnsized>::MetadataResolver, _: *mut <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata, )
Creates the archived version of the metadata for this value at the given position and writes
it to the given output. Read more
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.
Source§impl<T, S> SerializeUnsized<S> for T
impl<T, S> SerializeUnsized<S> for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.