nominal_api_conjure/conjure/objects/scout/compute/api/
math_constant.rs1#![allow(deprecated)]
2use std::fmt;
3use std::str;
4#[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 conjure_object::log_safety::derive::LogSafe
16)]
17#[serde(crate = "conjure_object::serde")]
18pub enum MathConstant {
19 #[serde(rename = "PI")]
21 Pi,
22 #[serde(rename = "TAU")]
24 Tau,
25 #[serde(rename = "E")]
27 E,
28 #[serde(untagged)]
30 Unknown(Unknown),
31}
32impl MathConstant {
33 #[inline]
35 pub fn as_str(&self) -> &str {
36 match self {
37 MathConstant::Pi => "PI",
38 MathConstant::Tau => "TAU",
39 MathConstant::E => "E",
40 MathConstant::Unknown(v) => &*v,
41 }
42 }
43}
44impl fmt::Display for MathConstant {
45 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
46 fmt::Display::fmt(self.as_str(), fmt)
47 }
48}
49impl conjure_object::Plain for MathConstant {
50 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
51 conjure_object::Plain::fmt(self.as_str(), fmt)
52 }
53}
54impl str::FromStr for MathConstant {
55 type Err = conjure_object::plain::ParseEnumError;
56 #[inline]
57 fn from_str(v: &str) -> Result<MathConstant, conjure_object::plain::ParseEnumError> {
58 match v {
59 "PI" => Ok(MathConstant::Pi),
60 "TAU" => Ok(MathConstant::Tau),
61 "E" => Ok(MathConstant::E),
62 v => v.parse().map(|v| MathConstant::Unknown(Unknown(v))),
63 }
64 }
65}
66impl conjure_object::FromPlain for MathConstant {
67 type Err = conjure_object::plain::ParseEnumError;
68 #[inline]
69 fn from_plain(
70 v: &str,
71 ) -> Result<MathConstant, conjure_object::plain::ParseEnumError> {
72 v.parse()
73 }
74}
75#[derive(
77 Debug,
78 Clone,
79 PartialEq,
80 Eq,
81 PartialOrd,
82 Ord,
83 Hash,
84 conjure_object::serde::Deserialize,
85 conjure_object::serde::Serialize,
86 conjure_object::log_safety::derive::LogSafe,
87)]
88#[serde(crate = "conjure_object::serde", transparent)]
89pub struct Unknown(conjure_object::private::Variant);
90impl std::ops::Deref for Unknown {
91 type Target = str;
92 #[inline]
93 fn deref(&self) -> &str {
94 &self.0
95 }
96}
97impl fmt::Display for Unknown {
98 #[inline]
99 fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
100 fmt::Display::fmt(&self.0, fmt)
101 }
102}