32 lines
739 B
Rust
32 lines
739 B
Rust
use crate::domain::{ingredient::types::Ingredient, misc_types::Lang};
|
|
|
|
#[derive(Debug, Clone, Serialize)]
|
|
pub struct Recipe {
|
|
pub key: String,
|
|
pub lang: Lang,
|
|
pub name: String,
|
|
pub instructions: Vec<String>,
|
|
pub ingredients: Vec<RecipeIngredient>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Serialize)]
|
|
pub struct RecipeIngredient {
|
|
#[serde(flatten)]
|
|
pub ingredient: Ingredient,
|
|
#[serde(flatten)]
|
|
pub measure: Measure,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
|
|
#[serde(tag = "measure", content = "amount")]
|
|
pub enum Measure {
|
|
#[serde(rename = "g")]
|
|
Gram(u32),
|
|
#[serde(rename = "kg")]
|
|
KiloGram(u32),
|
|
#[serde(rename = "ml")]
|
|
MilliLiter(u32),
|
|
#[serde(rename = "l")]
|
|
Liter(u32),
|
|
}
|