Skip to main content

nominal_api_conjure/conjure/objects/api/
time_unit.rs

1#![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    /// An unknown variant.
33    #[serde(untagged)]
34    Unknown(Unknown),
35}
36impl TimeUnit {
37    /// Returns the string representation of the enum.
38    #[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///An unknown variant of the TimeUnit enum.
86#[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}