Skip to main content

nominal_api/conjure/objects/scout/compute/api/
refprop_substance.rs

1#![allow(deprecated)]
2use std::fmt;
3use std::str;
4/// Supported substances for REFPROP calculations
5#[derive(
6    Debug,
7    Clone,
8    PartialEq,
9    Eq,
10    PartialOrd,
11    Ord,
12    Hash,
13    conjure_object::serde::Deserialize,
14    conjure_object::serde::Serialize,
15)]
16#[serde(crate = "conjure_object::serde")]
17pub enum RefpropSubstance {
18    #[serde(rename = "NITROGEN")]
19    Nitrogen,
20    #[serde(rename = "OXYGEN")]
21    Oxygen,
22    #[serde(rename = "HELIUM")]
23    Helium,
24    #[serde(rename = "HYDROGEN")]
25    Hydrogen,
26    #[serde(rename = "METHANE")]
27    Methane,
28    #[serde(rename = "PROPANE")]
29    Propane,
30    #[serde(rename = "BUTANE")]
31    Butane,
32    #[serde(rename = "WATER")]
33    Water,
34    #[serde(rename = "XENON")]
35    Xenon,
36    #[serde(rename = "AIR")]
37    Air,
38    #[serde(rename = "CARBON_DIOXIDE")]
39    CarbonDioxide,
40    #[serde(rename = "ARGON")]
41    Argon,
42    #[serde(rename = "CARBON_MONOXIDE")]
43    CarbonMonoxide,
44    /// An unknown variant.
45    #[serde(untagged)]
46    Unknown(Unknown),
47}
48impl RefpropSubstance {
49    /// Returns the string representation of the enum.
50    #[inline]
51    pub fn as_str(&self) -> &str {
52        match self {
53            RefpropSubstance::Nitrogen => "NITROGEN",
54            RefpropSubstance::Oxygen => "OXYGEN",
55            RefpropSubstance::Helium => "HELIUM",
56            RefpropSubstance::Hydrogen => "HYDROGEN",
57            RefpropSubstance::Methane => "METHANE",
58            RefpropSubstance::Propane => "PROPANE",
59            RefpropSubstance::Butane => "BUTANE",
60            RefpropSubstance::Water => "WATER",
61            RefpropSubstance::Xenon => "XENON",
62            RefpropSubstance::Air => "AIR",
63            RefpropSubstance::CarbonDioxide => "CARBON_DIOXIDE",
64            RefpropSubstance::Argon => "ARGON",
65            RefpropSubstance::CarbonMonoxide => "CARBON_MONOXIDE",
66            RefpropSubstance::Unknown(v) => &*v,
67        }
68    }
69}
70impl fmt::Display for RefpropSubstance {
71    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
72        fmt::Display::fmt(self.as_str(), fmt)
73    }
74}
75impl conjure_object::Plain for RefpropSubstance {
76    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
77        conjure_object::Plain::fmt(self.as_str(), fmt)
78    }
79}
80impl str::FromStr for RefpropSubstance {
81    type Err = conjure_object::plain::ParseEnumError;
82    #[inline]
83    fn from_str(
84        v: &str,
85    ) -> Result<RefpropSubstance, conjure_object::plain::ParseEnumError> {
86        match v {
87            "NITROGEN" => Ok(RefpropSubstance::Nitrogen),
88            "OXYGEN" => Ok(RefpropSubstance::Oxygen),
89            "HELIUM" => Ok(RefpropSubstance::Helium),
90            "HYDROGEN" => Ok(RefpropSubstance::Hydrogen),
91            "METHANE" => Ok(RefpropSubstance::Methane),
92            "PROPANE" => Ok(RefpropSubstance::Propane),
93            "BUTANE" => Ok(RefpropSubstance::Butane),
94            "WATER" => Ok(RefpropSubstance::Water),
95            "XENON" => Ok(RefpropSubstance::Xenon),
96            "AIR" => Ok(RefpropSubstance::Air),
97            "CARBON_DIOXIDE" => Ok(RefpropSubstance::CarbonDioxide),
98            "ARGON" => Ok(RefpropSubstance::Argon),
99            "CARBON_MONOXIDE" => Ok(RefpropSubstance::CarbonMonoxide),
100            v => v.parse().map(|v| RefpropSubstance::Unknown(Unknown(v))),
101        }
102    }
103}
104impl conjure_object::FromPlain for RefpropSubstance {
105    type Err = conjure_object::plain::ParseEnumError;
106    #[inline]
107    fn from_plain(
108        v: &str,
109    ) -> Result<RefpropSubstance, conjure_object::plain::ParseEnumError> {
110        v.parse()
111    }
112}
113///An unknown variant of the RefpropSubstance enum.
114#[derive(
115    Debug,
116    Clone,
117    PartialEq,
118    Eq,
119    PartialOrd,
120    Ord,
121    Hash,
122    conjure_object::serde::Deserialize,
123    conjure_object::serde::Serialize,
124)]
125#[serde(crate = "conjure_object::serde", transparent)]
126pub struct Unknown(conjure_object::private::Variant);
127impl std::ops::Deref for Unknown {
128    type Target = str;
129    #[inline]
130    fn deref(&self) -> &str {
131        &self.0
132    }
133}
134impl fmt::Display for Unknown {
135    #[inline]
136    fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
137        fmt::Display::fmt(&self.0, fmt)
138    }
139}