Skip to main content

nominal_api/conjure/objects/scout/channel/api/
locator_channel_metadata.rs

1/// Metadata for a channel as it appears at one specific locator. Channels can have different
2/// metadata (seriesId, dataType, unit) across locators, so callers should treat each entry
3/// independently.
4#[derive(
5    Debug,
6    Clone,
7    conjure_object::serde::Serialize,
8    conjure_object::serde::Deserialize,
9    PartialEq,
10    Eq,
11    PartialOrd,
12    Ord,
13    Hash
14)]
15#[serde(crate = "conjure_object::serde")]
16#[conjure_object::private::staged_builder::staged_builder]
17#[builder(crate = conjure_object::private::staged_builder, update, inline)]
18pub struct LocatorChannelMetadata {
19    #[builder(custom(type = super::Locator, convert = Box::new))]
20    #[serde(rename = "locator")]
21    locator: Box<super::Locator>,
22    #[builder(default, into)]
23    #[serde(rename = "unit", skip_serializing_if = "Option::is_none", default)]
24    unit: Option<super::super::super::super::api::Unit>,
25    #[builder(default, into)]
26    #[serde(rename = "description", skip_serializing_if = "Option::is_none", default)]
27    description: Option<String>,
28    #[builder(default, into)]
29    #[serde(rename = "dataType", skip_serializing_if = "Option::is_none", default)]
30    data_type: Option<super::super::super::super::api::SeriesDataType>,
31    #[builder(
32        custom(
33            type = super::super::super::super::datasource::api::SeriesMetadataRidOrLogicalSeriesRid,
34            convert = Box::new
35        )
36    )]
37    #[serde(rename = "seriesId")]
38    series_id: Box<
39        super::super::super::super::datasource::api::SeriesMetadataRidOrLogicalSeriesRid,
40    >,
41}
42impl LocatorChannelMetadata {
43    /// Constructs a new instance of the type.
44    #[inline]
45    pub fn new(
46        locator: super::Locator,
47        series_id: super::super::super::super::datasource::api::SeriesMetadataRidOrLogicalSeriesRid,
48    ) -> Self {
49        Self::builder().locator(locator).series_id(series_id).build()
50    }
51    #[inline]
52    pub fn locator(&self) -> &super::Locator {
53        &*self.locator
54    }
55    #[inline]
56    pub fn unit(&self) -> Option<&super::super::super::super::api::Unit> {
57        self.unit.as_ref().map(|o| &*o)
58    }
59    #[inline]
60    pub fn description(&self) -> Option<&str> {
61        self.description.as_ref().map(|o| &**o)
62    }
63    #[inline]
64    pub fn data_type(&self) -> Option<&super::super::super::super::api::SeriesDataType> {
65        self.data_type.as_ref().map(|o| &*o)
66    }
67    #[inline]
68    pub fn series_id(
69        &self,
70    ) -> &super::super::super::super::datasource::api::SeriesMetadataRidOrLogicalSeriesRid {
71        &*self.series_id
72    }
73}