Skip to main content

nominal_api_conjure/conjure/objects/scout/chartdefinition/api/
geo_custom_measurement.rs

1/// A custom distance annotation on the map. Units for distance are inherited from GeoVizDefinitionV1
2#[derive(
3    Debug,
4    Clone,
5    conjure_object::serde::Serialize,
6    conjure_object::serde::Deserialize,
7    conjure_object::private::DeriveWith
8)]
9#[serde(crate = "conjure_object::serde")]
10#[derive_with(PartialEq, Eq, PartialOrd, Ord, Hash)]
11#[conjure_object::private::staged_builder::staged_builder]
12#[builder(crate = conjure_object::private::staged_builder, update, inline)]
13pub struct GeoCustomMeasurement {
14    #[builder(default, into)]
15    #[serde(rename = "id", skip_serializing_if = "Option::is_none", default)]
16    id: Option<conjure_object::Uuid>,
17    #[builder(default, into)]
18    #[serde(rename = "label", skip_serializing_if = "Option::is_none", default)]
19    label: Option<String>,
20    #[builder(default, into)]
21    #[serde(rename = "enabled", skip_serializing_if = "Option::is_none", default)]
22    enabled: Option<bool>,
23    #[builder(custom(type = super::GeoCoordinate, convert = Box::new))]
24    #[serde(rename = "startCoordinate")]
25    start_coordinate: Box<super::GeoCoordinate>,
26    #[builder(custom(type = super::GeoCoordinate, convert = Box::new))]
27    #[serde(rename = "endCoordinate")]
28    end_coordinate: Box<super::GeoCoordinate>,
29    #[builder(custom(type = super::GeoPlotVisualizationOptions, convert = Box::new))]
30    #[serde(rename = "visualizationOptions")]
31    visualization_options: Box<super::GeoPlotVisualizationOptions>,
32}
33impl GeoCustomMeasurement {
34    /// Constructs a new instance of the type.
35    #[inline]
36    pub fn new(
37        start_coordinate: super::GeoCoordinate,
38        end_coordinate: super::GeoCoordinate,
39        visualization_options: super::GeoPlotVisualizationOptions,
40    ) -> Self {
41        Self::builder()
42            .start_coordinate(start_coordinate)
43            .end_coordinate(end_coordinate)
44            .visualization_options(visualization_options)
45            .build()
46    }
47    #[inline]
48    pub fn id(&self) -> Option<conjure_object::Uuid> {
49        self.id.as_ref().map(|o| *o)
50    }
51    #[inline]
52    pub fn label(&self) -> Option<&str> {
53        self.label.as_ref().map(|o| &**o)
54    }
55    #[inline]
56    pub fn enabled(&self) -> Option<bool> {
57        self.enabled.as_ref().map(|o| *o)
58    }
59    #[inline]
60    pub fn start_coordinate(&self) -> &super::GeoCoordinate {
61        &*self.start_coordinate
62    }
63    #[inline]
64    pub fn end_coordinate(&self) -> &super::GeoCoordinate {
65        &*self.end_coordinate
66    }
67    #[inline]
68    pub fn visualization_options(&self) -> &super::GeoPlotVisualizationOptions {
69        &*self.visualization_options
70    }
71}