Skip to main content

nominal_api/conjure/objects/scout/comparisonnotebook/api/
comparison_table_definition_v1.rs

1#[derive(
2    Debug,
3    Clone,
4    conjure_object::serde::Serialize,
5    conjure_object::serde::Deserialize,
6    PartialEq,
7    Eq,
8    PartialOrd,
9    Ord,
10    Hash
11)]
12#[serde(crate = "conjure_object::serde")]
13#[conjure_object::private::staged_builder::staged_builder]
14#[builder(crate = conjure_object::private::staged_builder, update, inline)]
15pub struct ComparisonTableDefinitionV1 {
16    #[builder(default, into)]
17    #[serde(rename = "title", skip_serializing_if = "Option::is_none", default)]
18    title: Option<String>,
19    #[builder(default, list(item(type = super::VariableName)))]
20    #[serde(
21        rename = "rangeAggregations",
22        skip_serializing_if = "Vec::is_empty",
23        default
24    )]
25    range_aggregations: Vec<super::VariableName>,
26    #[builder(
27        custom(type = super::ComparisonTableVisualizationOptions, convert = Box::new)
28    )]
29    #[serde(rename = "visualizationOptions")]
30    visualization_options: Box<super::ComparisonTableVisualizationOptions>,
31    #[builder(default, list(item(type = super::ComparisonTableColumn)))]
32    #[serde(rename = "columns", skip_serializing_if = "Vec::is_empty", default)]
33    columns: Vec<super::ComparisonTableColumn>,
34}
35impl ComparisonTableDefinitionV1 {
36    /// Constructs a new instance of the type.
37    #[inline]
38    pub fn new(
39        visualization_options: super::ComparisonTableVisualizationOptions,
40    ) -> Self {
41        Self::builder().visualization_options(visualization_options).build()
42    }
43    #[inline]
44    pub fn title(&self) -> Option<&str> {
45        self.title.as_ref().map(|o| &**o)
46    }
47    #[inline]
48    pub fn range_aggregations(&self) -> &[super::VariableName] {
49        &*self.range_aggregations
50    }
51    #[inline]
52    pub fn visualization_options(&self) -> &super::ComparisonTableVisualizationOptions {
53        &*self.visualization_options
54    }
55    #[inline]
56    pub fn columns(&self) -> &[super::ComparisonTableColumn] {
57        &*self.columns
58    }
59}