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 = "label", skip_serializing_if = "Option::is_none", default)]
16    label: Option<String>,
17    #[builder(custom(type = super::GeoCoordinate, convert = Box::new))]
18    #[serde(rename = "startCoordinate")]
19    start_coordinate: Box<super::GeoCoordinate>,
20    #[builder(custom(type = super::GeoCoordinate, convert = Box::new))]
21    #[serde(rename = "endCoordinate")]
22    end_coordinate: Box<super::GeoCoordinate>,
23    #[builder(custom(type = super::GeoPlotVisualizationOptions, convert = Box::new))]
24    #[serde(rename = "visualizationOptions")]
25    visualization_options: Box<super::GeoPlotVisualizationOptions>,
26}
27impl GeoCustomMeasurement {
28    /// Constructs a new instance of the type.
29    #[inline]
30    pub fn new(
31        start_coordinate: super::GeoCoordinate,
32        end_coordinate: super::GeoCoordinate,
33        visualization_options: super::GeoPlotVisualizationOptions,
34    ) -> Self {
35        Self::builder()
36            .start_coordinate(start_coordinate)
37            .end_coordinate(end_coordinate)
38            .visualization_options(visualization_options)
39            .build()
40    }
41    #[inline]
42    pub fn label(&self) -> Option<&str> {
43        self.label.as_ref().map(|o| &**o)
44    }
45    #[inline]
46    pub fn start_coordinate(&self) -> &super::GeoCoordinate {
47        &*self.start_coordinate
48    }
49    #[inline]
50    pub fn end_coordinate(&self) -> &super::GeoCoordinate {
51        &*self.end_coordinate
52    }
53    #[inline]
54    pub fn visualization_options(&self) -> &super::GeoPlotVisualizationOptions {
55        &*self.visualization_options
56    }
57}