nominal_api/conjure/objects/storage/writer/api/
telegraf_metric.rs1#[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 TelegrafMetric {
16 #[builder(
17 default,
18 map(
19 key(type = super::Field),
20 value(
21 custom(
22 type = impl
23 conjure_object::serde::Serialize,
24 convert = |v|conjure_object::Any::new(
25 v
26 ).expect("value failed to serialize")
27 )
28 )
29 )
30 )]
31 #[serde(
32 rename = "fields",
33 skip_serializing_if = "std::collections::BTreeMap::is_empty",
34 default
35 )]
36 fields: std::collections::BTreeMap<super::Field, conjure_object::Any>,
37 #[serde(rename = "name")]
38 name: super::MeasurementName,
39 #[builder(
40 default,
41 map(
42 key(type = super::super::super::super::api::TagName),
43 value(type = super::super::super::super::api::TagValue)
44 )
45 )]
46 #[serde(
47 rename = "tags",
48 skip_serializing_if = "std::collections::BTreeMap::is_empty",
49 default
50 )]
51 tags: std::collections::BTreeMap<
52 super::super::super::super::api::TagName,
53 super::super::super::super::api::TagValue,
54 >,
55 #[builder(
56 custom(
57 type = impl
58 conjure_object::serde::Serialize,
59 convert = |v|conjure_object::Any::new(v).expect("value failed to serialize")
60 )
61 )]
62 #[serde(rename = "timestamp")]
63 timestamp: conjure_object::Any,
64}
65impl TelegrafMetric {
66 #[inline]
68 pub fn new(
69 name: super::MeasurementName,
70 timestamp: impl conjure_object::serde::Serialize,
71 ) -> Self {
72 Self::builder().name(name).timestamp(timestamp).build()
73 }
74 #[inline]
76 pub fn fields(
77 &self,
78 ) -> &std::collections::BTreeMap<super::Field, conjure_object::Any> {
79 &self.fields
80 }
81 #[inline]
83 pub fn name(&self) -> &super::MeasurementName {
84 &self.name
85 }
86 #[inline]
87 pub fn tags(
88 &self,
89 ) -> &std::collections::BTreeMap<
90 super::super::super::super::api::TagName,
91 super::super::super::super::api::TagValue,
92 > {
93 &self.tags
94 }
95 #[inline]
96 pub fn timestamp(&self) -> &conjure_object::Any {
97 &self.timestamp
98 }
99}