#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct CableLengthUnit {
#[serde(rename = "value", skip_serializing_if = "Option::is_none")]
pub value: Option<Value>,
#[serde(rename = "label", skip_serializing_if = "Option::is_none")]
pub label: Option<Label>,
}
impl CableLengthUnit {
pub fn new() -> CableLengthUnit {
CableLengthUnit {
value: None,
label: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Value {
#[serde(rename = "km")]
Km,
#[serde(rename = "m")]
M,
#[serde(rename = "cm")]
Cm,
#[serde(rename = "mi")]
Mi,
#[serde(rename = "ft")]
Ft,
#[serde(rename = "in")]
In,
}
impl Default for Value {
fn default() -> Value {
Self::Km
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Label {
#[serde(rename = "Kilometers")]
Kilometers,
#[serde(rename = "Meters")]
Meters,
#[serde(rename = "Centimeters")]
Centimeters,
#[serde(rename = "Miles")]
Miles,
#[serde(rename = "Feet")]
Feet,
#[serde(rename = "Inches")]
Inches,
}
impl Default for Label {
fn default() -> Label {
Self::Kilometers
}
}