use identity::Identity as Id; use std::collections::BTreeSet; /// A schema format backing a recipe set #[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd)] pub struct Schema { /// Set of ingredients present in a recipe pub ingredients: BTreeSet, /// Set of allowed work-steps in a recipe pub worksteps: BTreeSet, } #[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd)] pub struct Ingredient { pub name: String, pub slug: String, pub id: Id, } /// An execution step #[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd)] pub struct Workstep { pub id: Id, pub name: String, pub slug: String, pub description: String, } /// A piece of gear required to execute an action pub struct Material { pub id: Id, pub name: String, pub slug: String, pub description: String, }