nominal_api/conjure/objects/api/
time_unit.rs1#![allow(deprecated)]
2use std::fmt;
3use std::str;
4#[derive(
5 Debug,
6 Clone,
7 PartialEq,
8 Eq,
9 PartialOrd,
10 Ord,
11 Hash,
12 conjure_object::serde::Deserialize,
13 conjure_object::serde::Serialize,
14)]
15#[serde(crate = "conjure_object::serde")]
16pub enum TimeUnit {
17 #[serde(rename = "DAYS")]
18 Days,
19 #[serde(rename = "HOURS")]
20 Hours,
21 #[serde(rename = "MINUTES")]
22 Minutes,
23 #[serde(rename = "SECONDS")]
24 Seconds,
25 #[serde(rename = "MILLISECONDS")]
26 Milliseconds,
27 #[serde(rename = "MICROSECONDS")]
28 Microseconds,
29 #[serde(rename = "NANOSECONDS")]
30 Nanoseconds,
31 #[serde(untagged)]
33 Unknown(Unknown),
34}
35impl TimeUnit {
36 #[inline]
38 pub fn as_str(&self) -> &str {
39 match self {
40 TimeUnit::Days => "DAYS",
41 TimeUnit::Hours => "HOURS",
42 TimeUnit::Minutes => "MINUTES",
43 TimeUnit::Seconds => "SECONDS",
44 TimeUnit::Milliseconds => "MILLISECONDS",
45 TimeUnit::Microseconds => "MICROSECONDS",
46 TimeUnit::Nanoseconds => "NANOSECONDS",
47 TimeUnit::Unknown(v) => &*v,
48 }
49 }
50}
51impl fmt::Display for TimeUnit {
52 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
53 fmt::Display::fmt(self.as_str(), fmt)
54 }
55}
56impl conjure_object::Plain for TimeUnit {
57 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
58 conjure_object::Plain::fmt(self.as_str(), fmt)
59 }
60}
61impl str::FromStr for TimeUnit {
62 type Err = conjure_object::plain::ParseEnumError;
63 #[inline]
64 fn from_str(v: &str) -> Result<TimeUnit, conjure_object::plain::ParseEnumError> {
65 match v {
66 "DAYS" => Ok(TimeUnit::Days),
67 "HOURS" => Ok(TimeUnit::Hours),
68 "MINUTES" => Ok(TimeUnit::Minutes),
69 "SECONDS" => Ok(TimeUnit::Seconds),
70 "MILLISECONDS" => Ok(TimeUnit::Milliseconds),
71 "MICROSECONDS" => Ok(TimeUnit::Microseconds),
72 "NANOSECONDS" => Ok(TimeUnit::Nanoseconds),
73 v => v.parse().map(|v| TimeUnit::Unknown(Unknown(v))),
74 }
75 }
76}
77impl conjure_object::FromPlain for TimeUnit {
78 type Err = conjure_object::plain::ParseEnumError;
79 #[inline]
80 fn from_plain(v: &str) -> Result<TimeUnit, conjure_object::plain::ParseEnumError> {
81 v.parse()
82 }
83}
84#[derive(
86 Debug,
87 Clone,
88 PartialEq,
89 Eq,
90 PartialOrd,
91 Ord,
92 Hash,
93 conjure_object::serde::Deserialize,
94 conjure_object::serde::Serialize,
95)]
96#[serde(crate = "conjure_object::serde", transparent)]
97pub struct Unknown(conjure_object::private::Variant);
98impl std::ops::Deref for Unknown {
99 type Target = str;
100 #[inline]
101 fn deref(&self) -> &str {
102 &self.0
103 }
104}
105impl fmt::Display for Unknown {
106 #[inline]
107 fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
108 fmt::Display::fmt(&self.0, fmt)
109 }
110}