recipes/api/src/domain/ingredient/types.rs

33 lines
752 B
Rust

#[derive(Debug, Copy, Clone, Eq, PartialEq, Serialize)]
pub enum Lang {
Rus,
#[allow(dead_code)]
Eng,
}
#[derive(Debug, Clone, Serialize)]
pub struct Ingredient {
pub key: String,
pub lang: Lang,
pub name: String,
}
impl From<&db::data::Ingredient> for Ingredient {
fn from(db: &db::data::Ingredient) -> Self {
Self::from((db, Lang::Rus))
}
}
impl From<(&db::data::Ingredient, Lang)> for Ingredient {
fn from((db, lang): (&db::data::Ingredient, Lang)) -> Self {
let key = db.key.to_string();
let name = match lang {
Lang::Rus => db.translates.ru.to_string(),
Lang::Eng => db.translates.en.unwrap().to_string(),
};
Self { key, lang, name }
}
}