#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct Computation {
pub top_bottom_ranked: ::std::option::Option<crate::types::TopBottomRankedComputation>,
pub top_bottom_movers: ::std::option::Option<crate::types::TopBottomMoversComputation>,
pub total_aggregation: ::std::option::Option<crate::types::TotalAggregationComputation>,
pub maximum_minimum: ::std::option::Option<crate::types::MaximumMinimumComputation>,
pub metric_comparison: ::std::option::Option<crate::types::MetricComparisonComputation>,
pub period_over_period: ::std::option::Option<crate::types::PeriodOverPeriodComputation>,
pub period_to_date: ::std::option::Option<crate::types::PeriodToDateComputation>,
pub growth_rate: ::std::option::Option<crate::types::GrowthRateComputation>,
pub unique_values: ::std::option::Option<crate::types::UniqueValuesComputation>,
pub forecast: ::std::option::Option<crate::types::ForecastComputation>,
}
impl Computation {
pub fn top_bottom_ranked(&self) -> ::std::option::Option<&crate::types::TopBottomRankedComputation> {
self.top_bottom_ranked.as_ref()
}
pub fn top_bottom_movers(&self) -> ::std::option::Option<&crate::types::TopBottomMoversComputation> {
self.top_bottom_movers.as_ref()
}
pub fn total_aggregation(&self) -> ::std::option::Option<&crate::types::TotalAggregationComputation> {
self.total_aggregation.as_ref()
}
pub fn maximum_minimum(&self) -> ::std::option::Option<&crate::types::MaximumMinimumComputation> {
self.maximum_minimum.as_ref()
}
pub fn metric_comparison(&self) -> ::std::option::Option<&crate::types::MetricComparisonComputation> {
self.metric_comparison.as_ref()
}
pub fn period_over_period(&self) -> ::std::option::Option<&crate::types::PeriodOverPeriodComputation> {
self.period_over_period.as_ref()
}
pub fn period_to_date(&self) -> ::std::option::Option<&crate::types::PeriodToDateComputation> {
self.period_to_date.as_ref()
}
pub fn growth_rate(&self) -> ::std::option::Option<&crate::types::GrowthRateComputation> {
self.growth_rate.as_ref()
}
pub fn unique_values(&self) -> ::std::option::Option<&crate::types::UniqueValuesComputation> {
self.unique_values.as_ref()
}
pub fn forecast(&self) -> ::std::option::Option<&crate::types::ForecastComputation> {
self.forecast.as_ref()
}
}
impl Computation {
pub fn builder() -> crate::types::builders::ComputationBuilder {
crate::types::builders::ComputationBuilder::default()
}
}
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct ComputationBuilder {
pub(crate) top_bottom_ranked: ::std::option::Option<crate::types::TopBottomRankedComputation>,
pub(crate) top_bottom_movers: ::std::option::Option<crate::types::TopBottomMoversComputation>,
pub(crate) total_aggregation: ::std::option::Option<crate::types::TotalAggregationComputation>,
pub(crate) maximum_minimum: ::std::option::Option<crate::types::MaximumMinimumComputation>,
pub(crate) metric_comparison: ::std::option::Option<crate::types::MetricComparisonComputation>,
pub(crate) period_over_period: ::std::option::Option<crate::types::PeriodOverPeriodComputation>,
pub(crate) period_to_date: ::std::option::Option<crate::types::PeriodToDateComputation>,
pub(crate) growth_rate: ::std::option::Option<crate::types::GrowthRateComputation>,
pub(crate) unique_values: ::std::option::Option<crate::types::UniqueValuesComputation>,
pub(crate) forecast: ::std::option::Option<crate::types::ForecastComputation>,
}
impl ComputationBuilder {
pub fn top_bottom_ranked(mut self, input: crate::types::TopBottomRankedComputation) -> Self {
self.top_bottom_ranked = ::std::option::Option::Some(input);
self
}
pub fn set_top_bottom_ranked(mut self, input: ::std::option::Option<crate::types::TopBottomRankedComputation>) -> Self {
self.top_bottom_ranked = input;
self
}
pub fn get_top_bottom_ranked(&self) -> &::std::option::Option<crate::types::TopBottomRankedComputation> {
&self.top_bottom_ranked
}
pub fn top_bottom_movers(mut self, input: crate::types::TopBottomMoversComputation) -> Self {
self.top_bottom_movers = ::std::option::Option::Some(input);
self
}
pub fn set_top_bottom_movers(mut self, input: ::std::option::Option<crate::types::TopBottomMoversComputation>) -> Self {
self.top_bottom_movers = input;
self
}
pub fn get_top_bottom_movers(&self) -> &::std::option::Option<crate::types::TopBottomMoversComputation> {
&self.top_bottom_movers
}
pub fn total_aggregation(mut self, input: crate::types::TotalAggregationComputation) -> Self {
self.total_aggregation = ::std::option::Option::Some(input);
self
}
pub fn set_total_aggregation(mut self, input: ::std::option::Option<crate::types::TotalAggregationComputation>) -> Self {
self.total_aggregation = input;
self
}
pub fn get_total_aggregation(&self) -> &::std::option::Option<crate::types::TotalAggregationComputation> {
&self.total_aggregation
}
pub fn maximum_minimum(mut self, input: crate::types::MaximumMinimumComputation) -> Self {
self.maximum_minimum = ::std::option::Option::Some(input);
self
}
pub fn set_maximum_minimum(mut self, input: ::std::option::Option<crate::types::MaximumMinimumComputation>) -> Self {
self.maximum_minimum = input;
self
}
pub fn get_maximum_minimum(&self) -> &::std::option::Option<crate::types::MaximumMinimumComputation> {
&self.maximum_minimum
}
pub fn metric_comparison(mut self, input: crate::types::MetricComparisonComputation) -> Self {
self.metric_comparison = ::std::option::Option::Some(input);
self
}
pub fn set_metric_comparison(mut self, input: ::std::option::Option<crate::types::MetricComparisonComputation>) -> Self {
self.metric_comparison = input;
self
}
pub fn get_metric_comparison(&self) -> &::std::option::Option<crate::types::MetricComparisonComputation> {
&self.metric_comparison
}
pub fn period_over_period(mut self, input: crate::types::PeriodOverPeriodComputation) -> Self {
self.period_over_period = ::std::option::Option::Some(input);
self
}
pub fn set_period_over_period(mut self, input: ::std::option::Option<crate::types::PeriodOverPeriodComputation>) -> Self {
self.period_over_period = input;
self
}
pub fn get_period_over_period(&self) -> &::std::option::Option<crate::types::PeriodOverPeriodComputation> {
&self.period_over_period
}
pub fn period_to_date(mut self, input: crate::types::PeriodToDateComputation) -> Self {
self.period_to_date = ::std::option::Option::Some(input);
self
}
pub fn set_period_to_date(mut self, input: ::std::option::Option<crate::types::PeriodToDateComputation>) -> Self {
self.period_to_date = input;
self
}
pub fn get_period_to_date(&self) -> &::std::option::Option<crate::types::PeriodToDateComputation> {
&self.period_to_date
}
pub fn growth_rate(mut self, input: crate::types::GrowthRateComputation) -> Self {
self.growth_rate = ::std::option::Option::Some(input);
self
}
pub fn set_growth_rate(mut self, input: ::std::option::Option<crate::types::GrowthRateComputation>) -> Self {
self.growth_rate = input;
self
}
pub fn get_growth_rate(&self) -> &::std::option::Option<crate::types::GrowthRateComputation> {
&self.growth_rate
}
pub fn unique_values(mut self, input: crate::types::UniqueValuesComputation) -> Self {
self.unique_values = ::std::option::Option::Some(input);
self
}
pub fn set_unique_values(mut self, input: ::std::option::Option<crate::types::UniqueValuesComputation>) -> Self {
self.unique_values = input;
self
}
pub fn get_unique_values(&self) -> &::std::option::Option<crate::types::UniqueValuesComputation> {
&self.unique_values
}
pub fn forecast(mut self, input: crate::types::ForecastComputation) -> Self {
self.forecast = ::std::option::Option::Some(input);
self
}
pub fn set_forecast(mut self, input: ::std::option::Option<crate::types::ForecastComputation>) -> Self {
self.forecast = input;
self
}
pub fn get_forecast(&self) -> &::std::option::Option<crate::types::ForecastComputation> {
&self.forecast
}
pub fn build(self) -> crate::types::Computation {
crate::types::Computation {
top_bottom_ranked: self.top_bottom_ranked,
top_bottom_movers: self.top_bottom_movers,
total_aggregation: self.total_aggregation,
maximum_minimum: self.maximum_minimum,
metric_comparison: self.metric_comparison,
period_over_period: self.period_over_period,
period_to_date: self.period_to_date,
growth_rate: self.growth_rate,
unique_values: self.unique_values,
forecast: self.forecast,
}
}
}