55 lines
1.1 KiB
Rust
55 lines
1.1 KiB
Rust
#[derive(Debug, PartialEq, Eq, Clone)]
|
|
pub enum ResourceState {
|
|
Parsed(bool),
|
|
Unparsed,
|
|
}
|
|
#[derive(Debug, PartialEq, Eq)]
|
|
pub struct Icon {
|
|
pub name: String,
|
|
pub url: String,
|
|
pub width: u32,
|
|
pub height: u32,
|
|
pub content_type: String,
|
|
}
|
|
|
|
impl Clone for Icon {
|
|
fn clone(&self) -> Self {
|
|
Icon {
|
|
name: self.name.clone(),
|
|
url: self.url.clone(),
|
|
width: self.width,
|
|
height: self.height,
|
|
content_type: self.content_type.clone(),
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Debug, PartialEq, Eq, Clone)]
|
|
pub struct Resource {
|
|
pub name: String,
|
|
pub title: String,
|
|
pub url: Option<String>,
|
|
pub icon: Option<Icon>,
|
|
pub state: ResourceState,
|
|
}
|
|
|
|
#[derive(Debug, PartialEq, Eq, Clone)]
|
|
pub struct Ingredient {
|
|
pub resource: Resource,
|
|
pub quantity: u32,
|
|
}
|
|
|
|
#[derive(Debug, PartialEq, Eq, Clone)]
|
|
pub enum RecipeType {
|
|
Production,
|
|
Refining,
|
|
Cooking,
|
|
}
|
|
#[derive(Debug, PartialEq, Eq, Clone)]
|
|
pub struct Recipe {
|
|
pub recipe_type: RecipeType,
|
|
pub resource: Ingredient,
|
|
pub duration: u64,
|
|
pub ingredients: Vec<Ingredient>,
|
|
}
|