Skip to main content

nominal_api/conjure/objects/scout/asset/api/
channel_metadata.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 ChannelMetadata {
16    #[serde(rename = "name")]
17    name: super::Channel,
18    #[builder(
19        custom(type = super::super::super::run::api::DataSource, convert = Box::new)
20    )]
21    #[serde(rename = "dataSource")]
22    data_source: Box<super::super::super::run::api::DataSource>,
23    #[builder(
24        default,
25        custom(
26            type = impl
27            Into<Option<super::super::super::run::api::Unit>>,
28            convert = |v|v.into().map(Box::new)
29        )
30    )]
31    #[serde(rename = "unit", skip_serializing_if = "Option::is_none", default)]
32    unit: Option<Box<super::super::super::run::api::Unit>>,
33    #[builder(default, into)]
34    #[serde(rename = "description", skip_serializing_if = "Option::is_none", default)]
35    description: Option<String>,
36    #[builder(default, into)]
37    #[serde(rename = "dataType", skip_serializing_if = "Option::is_none", default)]
38    data_type: Option<super::super::super::super::api::SeriesDataType>,
39}
40impl ChannelMetadata {
41    /// Constructs a new instance of the type.
42    #[inline]
43    pub fn new(
44        name: super::Channel,
45        data_source: super::super::super::run::api::DataSource,
46    ) -> Self {
47        Self::builder().name(name).data_source(data_source).build()
48    }
49    #[inline]
50    pub fn name(&self) -> &super::Channel {
51        &self.name
52    }
53    #[inline]
54    pub fn data_source(&self) -> &super::super::super::run::api::DataSource {
55        &*self.data_source
56    }
57    #[inline]
58    pub fn unit(&self) -> Option<&super::super::super::run::api::Unit> {
59        self.unit.as_ref().map(|o| &**o)
60    }
61    #[inline]
62    pub fn description(&self) -> Option<&str> {
63        self.description.as_ref().map(|o| &**o)
64    }
65    #[inline]
66    pub fn data_type(&self) -> Option<&super::super::super::super::api::SeriesDataType> {
67        self.data_type.as_ref().map(|o| &*o)
68    }
69}