aboutsummaryrefslogtreecommitdiff
path: root/rif/src/schema.rs
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<Ingredient>,
    /// Set of allowed work-steps in a recipe
    pub worksteps: BTreeSet<Workstep>,
}

#[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,
}