Skip to main content

nominal_api/conjure/objects/scout/comparisonnotebook/api/
comparison_table_column.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 ComparisonTableColumn {
16    #[builder(default, into)]
17    #[serde(rename = "title", skip_serializing_if = "Option::is_none", default)]
18    title: Option<String>,
19    #[builder(custom(type = super::VariableLocator, convert = Box::new))]
20    #[serde(rename = "locator")]
21    locator: Box<super::VariableLocator>,
22    #[builder(
23        custom(
24            type = super::ComparisonTableColumnVisualizationOptions,
25            convert = Box::new
26        )
27    )]
28    #[serde(rename = "visualizationOptions")]
29    visualization_options: Box<super::ComparisonTableColumnVisualizationOptions>,
30    #[builder(
31        default,
32        custom(
33            type = impl
34            Into<Option<super::AggregationType>>,
35            convert = |v|v.into().map(Box::new)
36        )
37    )]
38    #[serde(
39        rename = "aggregationType",
40        skip_serializing_if = "Option::is_none",
41        default
42    )]
43    aggregation_type: Option<Box<super::AggregationType>>,
44}
45impl ComparisonTableColumn {
46    /// Constructs a new instance of the type.
47    #[inline]
48    pub fn new(
49        locator: super::VariableLocator,
50        visualization_options: super::ComparisonTableColumnVisualizationOptions,
51    ) -> Self {
52        Self::builder()
53            .locator(locator)
54            .visualization_options(visualization_options)
55            .build()
56    }
57    #[inline]
58    pub fn title(&self) -> Option<&str> {
59        self.title.as_ref().map(|o| &**o)
60    }
61    #[inline]
62    pub fn locator(&self) -> &super::VariableLocator {
63        &*self.locator
64    }
65    #[inline]
66    pub fn visualization_options(
67        &self,
68    ) -> &super::ComparisonTableColumnVisualizationOptions {
69        &*self.visualization_options
70    }
71    /// optional for backcompatibility.
72    #[inline]
73    pub fn aggregation_type(&self) -> Option<&super::AggregationType> {
74        self.aggregation_type.as_ref().map(|o| &**o)
75    }
76}