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