use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Aggregation {
MinAggregation(Box<models::MinAggregation>),
MaxAggregation(Box<models::MaxAggregation>),
FirstAggregation(Box<models::FirstAggregation>),
LastAggregation(Box<models::LastAggregation>),
MeanAggregation(Box<models::MeanAggregation>),
SumAggregation(Box<models::SumAggregation>),
CountAggregation(Box<models::CountAggregation>),
PercentileEstimateAggregation(Box<models::PercentileEstimateAggregation>),
}
impl Default for Aggregation {
fn default() -> Self {
Self::MinAggregation(Default::default())
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "min")]
Min,
#[serde(rename = "max")]
Max,
#[serde(rename = "first")]
First,
#[serde(rename = "last")]
Last,
#[serde(rename = "mean")]
Mean,
#[serde(rename = "sum")]
Sum,
#[serde(rename = "count")]
Count,
#[serde(rename = "percentileEstimate")]
PercentileEstimate,
}
impl Default for Type {
fn default() -> Type {
Self::Min
}
}