skyblock_repo/models/
recipe.rs1use std::collections::HashMap;
2
3#[cfg(feature = "python")]
4use pyo3::{pyclass, pymethods};
5use serde::{Deserialize, Serialize};
6#[cfg(feature = "python")]
7use skyblock_repo_macros::PyStr;
8
9#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
10#[serde(rename_all = "camelCase")]
11#[cfg_attr(feature = "python", pyclass, derive(PyStr))]
12pub struct SkyblockRecipe {
13 pub name: Option<String>,
14 pub r#type: RecipeType,
15 pub result_id: Option<String>,
16 pub result_quantity: i32,
17 pub crafting: HashMap<String, RecipeIngredient>,
18}
19
20#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
21#[serde(rename_all = "camelCase")]
22#[cfg_attr(feature = "python", pyclass, derive(PyStr))]
23pub struct RecipeIngredient {
24 pub item_id: String,
25 pub quantity: i32,
26}
27
28#[derive(Debug, Serialize, Deserialize, Default, PartialEq, Clone)]
29#[serde(rename_all = "camelCase")]
30#[cfg_attr(feature = "python", pyclass, derive(PyStr))]
31pub enum RecipeType {
32 #[default]
33 Crafting,
34}