#![allow(deprecated)]
use std::fmt;
use std::str;
#[derive(
Debug,
Clone,
PartialEq,
Eq,
PartialOrd,
Ord,
Hash,
conjure_object::serde::Deserialize,
conjure_object::serde::Serialize,
)]
#[serde(crate = "conjure_object::serde")]
pub enum SpatialMatcap {
#[serde(rename = "SOAP")]
Soap,
#[serde(rename = "SILVER")]
Silver,
#[serde(rename = "GOLD")]
Gold,
#[serde(rename = "PLASTIC")]
Plastic,
#[serde(rename = "TILE")]
Tile,
#[serde(rename = "VIOLET_CHROME")]
VioletChrome,
#[serde(rename = "TRAFFIC_CONE")]
TrafficCone,
#[serde(rename = "EMERALD")]
Emerald,
#[serde(rename = "AMETHYST")]
Amethyst,
#[serde(rename = "BLUE_PAINT")]
BluePaint,
#[serde(rename = "RED_CAR")]
RedCar,
#[serde(rename = "BEETLE")]
Beetle,
#[serde(rename = "BUBBLE")]
Bubble,
#[serde(rename = "PEARL")]
Pearl,
#[serde(rename = "WAX")]
Wax,
#[serde(rename = "MARBLE")]
Marble,
#[serde(untagged)]
Unknown(Unknown),
}
impl SpatialMatcap {
#[inline]
pub fn as_str(&self) -> &str {
match self {
SpatialMatcap::Soap => "SOAP",
SpatialMatcap::Silver => "SILVER",
SpatialMatcap::Gold => "GOLD",
SpatialMatcap::Plastic => "PLASTIC",
SpatialMatcap::Tile => "TILE",
SpatialMatcap::VioletChrome => "VIOLET_CHROME",
SpatialMatcap::TrafficCone => "TRAFFIC_CONE",
SpatialMatcap::Emerald => "EMERALD",
SpatialMatcap::Amethyst => "AMETHYST",
SpatialMatcap::BluePaint => "BLUE_PAINT",
SpatialMatcap::RedCar => "RED_CAR",
SpatialMatcap::Beetle => "BEETLE",
SpatialMatcap::Bubble => "BUBBLE",
SpatialMatcap::Pearl => "PEARL",
SpatialMatcap::Wax => "WAX",
SpatialMatcap::Marble => "MARBLE",
SpatialMatcap::Unknown(v) => &*v,
}
}
}
impl fmt::Display for SpatialMatcap {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
fmt::Display::fmt(self.as_str(), fmt)
}
}
impl conjure_object::Plain for SpatialMatcap {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
conjure_object::Plain::fmt(self.as_str(), fmt)
}
}
impl str::FromStr for SpatialMatcap {
type Err = conjure_object::plain::ParseEnumError;
#[inline]
fn from_str(
v: &str,
) -> Result<SpatialMatcap, conjure_object::plain::ParseEnumError> {
match v {
"SOAP" => Ok(SpatialMatcap::Soap),
"SILVER" => Ok(SpatialMatcap::Silver),
"GOLD" => Ok(SpatialMatcap::Gold),
"PLASTIC" => Ok(SpatialMatcap::Plastic),
"TILE" => Ok(SpatialMatcap::Tile),
"VIOLET_CHROME" => Ok(SpatialMatcap::VioletChrome),
"TRAFFIC_CONE" => Ok(SpatialMatcap::TrafficCone),
"EMERALD" => Ok(SpatialMatcap::Emerald),
"AMETHYST" => Ok(SpatialMatcap::Amethyst),
"BLUE_PAINT" => Ok(SpatialMatcap::BluePaint),
"RED_CAR" => Ok(SpatialMatcap::RedCar),
"BEETLE" => Ok(SpatialMatcap::Beetle),
"BUBBLE" => Ok(SpatialMatcap::Bubble),
"PEARL" => Ok(SpatialMatcap::Pearl),
"WAX" => Ok(SpatialMatcap::Wax),
"MARBLE" => Ok(SpatialMatcap::Marble),
v => v.parse().map(|v| SpatialMatcap::Unknown(Unknown(v))),
}
}
}
impl conjure_object::FromPlain for SpatialMatcap {
type Err = conjure_object::plain::ParseEnumError;
#[inline]
fn from_plain(
v: &str,
) -> Result<SpatialMatcap, conjure_object::plain::ParseEnumError> {
v.parse()
}
}
#[derive(
Debug,
Clone,
PartialEq,
Eq,
PartialOrd,
Ord,
Hash,
conjure_object::serde::Deserialize,
conjure_object::serde::Serialize,
)]
#[serde(crate = "conjure_object::serde", transparent)]
pub struct Unknown(conjure_object::private::Variant);
impl std::ops::Deref for Unknown {
type Target = str;
#[inline]
fn deref(&self) -> &str {
&self.0
}
}
impl fmt::Display for Unknown {
#[inline]
fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
fmt::Display::fmt(&self.0, fmt)
}
}