Skip to main content

nominal_api/conjure/objects/scout/compute/api/
numeric_union_series.rs

1/// Combines multiple numeric series together and outputs a single series. By default, points from the inputs are
2/// concatenated (SQL {@code UNION ALL}) and duplicate timestamps across inputs are preserved. To aggregate values
3/// that share a timestamp, do a separate aggregation step next.
4#[derive(
5    Debug,
6    Clone,
7    conjure_object::serde::Serialize,
8    conjure_object::serde::Deserialize,
9    conjure_object::private::DeriveWith
10)]
11#[serde(crate = "conjure_object::serde")]
12#[derive_with(PartialEq, Eq, PartialOrd, Ord, Hash)]
13#[conjure_object::private::staged_builder::staged_builder]
14#[builder(crate = conjure_object::private::staged_builder, update, inline)]
15pub struct NumericUnionSeries {
16    #[builder(default, list(item(type = super::NumericSeries)))]
17    #[serde(rename = "input", skip_serializing_if = "Vec::is_empty", default)]
18    input: Vec<super::NumericSeries>,
19    #[builder(default, into)]
20    #[serde(rename = "operation", skip_serializing_if = "Option::is_none", default)]
21    operation: Option<super::NumericUnionOperation>,
22}
23impl NumericUnionSeries {
24    /// Constructs a new instance of the type.
25    #[inline]
26    pub fn new() -> Self {
27        Self::builder().build()
28    }
29    /// Input series to union
30    #[inline]
31    pub fn input(&self) -> &[super::NumericSeries] {
32        &*self.input
33    }
34    /// The strategy to merge points with duplicate timestamps.
35    #[deprecated(
36        note = "Apply aggregations as a separate step over the unioned output.\n"
37    )]
38    #[inline]
39    pub fn operation(&self) -> Option<&super::NumericUnionOperation> {
40        self.operation.as_ref().map(|o| &*o)
41    }
42}