use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Measurement {
#[serde(rename = "Unit")]
pub unit: Unit,
#[serde(rename = "Value")]
pub value: f64,
}
impl Measurement {
pub fn new(unit: Unit, value: f64) -> Measurement {
Measurement {
unit,
value,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Unit {
#[serde(rename = "OUNCES")]
Ounces,
#[serde(rename = "POUNDS")]
Pounds,
#[serde(rename = "KILOGRAMS")]
Kilograms,
#[serde(rename = "GRAMS")]
Grams,
#[serde(rename = "MILLIGRAMS")]
Milligrams,
#[serde(rename = "INCHES")]
Inches,
#[serde(rename = "FEET")]
Feet,
#[serde(rename = "METERS")]
Meters,
#[serde(rename = "CENTIMETERS")]
Centimeters,
#[serde(rename = "MILLIMETERS")]
Millimeters,
#[serde(rename = "SQUARE_METERS")]
SquareMeters,
#[serde(rename = "SQUARE_CENTIMETERS")]
SquareCentimeters,
#[serde(rename = "SQUARE_FEET")]
SquareFeet,
#[serde(rename = "SQUARE_INCHES")]
SquareInches,
#[serde(rename = "GALLONS")]
Gallons,
#[serde(rename = "PINTS")]
Pints,
#[serde(rename = "QUARTS")]
Quarts,
#[serde(rename = "FLUID_OUNCES")]
FluidOunces,
#[serde(rename = "LITERS")]
Liters,
#[serde(rename = "CUBIC_METERS")]
CubicMeters,
#[serde(rename = "CUBIC_FEET")]
CubicFeet,
#[serde(rename = "CUBIC_INCHES")]
CubicInches,
#[serde(rename = "CUBIC_CENTIMETERS")]
CubicCentimeters,
#[serde(rename = "COUNT")]
Count,
}
impl Default for Unit {
fn default() -> Unit {
Self::Ounces
}
}