#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct Expression {
pub dimensions: ::std::option::Option<crate::types::DimensionValues>,
pub tags: ::std::option::Option<crate::types::TagValues>,
pub time_range: ::std::option::Option<crate::types::TimeRange>,
}
impl Expression {
pub fn dimensions(&self) -> ::std::option::Option<&crate::types::DimensionValues> {
self.dimensions.as_ref()
}
pub fn tags(&self) -> ::std::option::Option<&crate::types::TagValues> {
self.tags.as_ref()
}
pub fn time_range(&self) -> ::std::option::Option<&crate::types::TimeRange> {
self.time_range.as_ref()
}
}
impl Expression {
pub fn builder() -> crate::types::builders::ExpressionBuilder {
crate::types::builders::ExpressionBuilder::default()
}
}
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct ExpressionBuilder {
pub(crate) dimensions: ::std::option::Option<crate::types::DimensionValues>,
pub(crate) tags: ::std::option::Option<crate::types::TagValues>,
pub(crate) time_range: ::std::option::Option<crate::types::TimeRange>,
}
impl ExpressionBuilder {
pub fn dimensions(mut self, input: crate::types::DimensionValues) -> Self {
self.dimensions = ::std::option::Option::Some(input);
self
}
pub fn set_dimensions(mut self, input: ::std::option::Option<crate::types::DimensionValues>) -> Self {
self.dimensions = input;
self
}
pub fn get_dimensions(&self) -> &::std::option::Option<crate::types::DimensionValues> {
&self.dimensions
}
pub fn tags(mut self, input: crate::types::TagValues) -> Self {
self.tags = ::std::option::Option::Some(input);
self
}
pub fn set_tags(mut self, input: ::std::option::Option<crate::types::TagValues>) -> Self {
self.tags = input;
self
}
pub fn get_tags(&self) -> &::std::option::Option<crate::types::TagValues> {
&self.tags
}
pub fn time_range(mut self, input: crate::types::TimeRange) -> Self {
self.time_range = ::std::option::Option::Some(input);
self
}
pub fn set_time_range(mut self, input: ::std::option::Option<crate::types::TimeRange>) -> Self {
self.time_range = input;
self
}
pub fn get_time_range(&self) -> &::std::option::Option<crate::types::TimeRange> {
&self.time_range
}
pub fn build(self) -> crate::types::Expression {
crate::types::Expression {
dimensions: self.dimensions,
tags: self.tags,
time_range: self.time_range,
}
}
}