From 89b8e5f0ef36c1a88f1d1080a005f6cf34aaa7e6 Mon Sep 17 00:00:00 2001 From: yuvlian <51725554+yuvlian@users.noreply.github.com> Date: Sat, 21 Feb 2026 14:31:55 +0700 Subject: [PATCH] default trait because i felt like it --- resource_api/src/res_parser/item.rs | 4 +-- resource_api/src/res_parser/text_map.rs | 2 +- resource_api/src/types/character.rs | 10 +++--- resource_api/src/types/common.rs | 42 ++++++++++++++++++++----- resource_api/src/types/item.rs | 4 +-- resource_api/src/types/lightcone.rs | 8 ++--- resource_api/src/types/relic.rs | 4 +-- 7 files changed, 50 insertions(+), 24 deletions(-) diff --git a/resource_api/src/res_parser/item.rs b/resource_api/src/res_parser/item.rs index 948dc82..d903c0b 100644 --- a/resource_api/src/res_parser/item.rs +++ b/resource_api/src/res_parser/item.rs @@ -6,7 +6,7 @@ use anyhow::{Context, Result}; use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct ItemConfigs(pub Vec); impl ItemConfigs { @@ -41,7 +41,7 @@ impl ItemConfigs { } } -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct ItemConfig { #[serde(rename = "ID")] pub id: i32, diff --git a/resource_api/src/res_parser/text_map.rs b/resource_api/src/res_parser/text_map.rs index ff6cac2..62fac0f 100644 --- a/resource_api/src/res_parser/text_map.rs +++ b/resource_api/src/res_parser/text_map.rs @@ -5,7 +5,7 @@ use std::collections::HashMap; use std::fs::File; use std::io::BufReader; -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct TextMaps(HashMap); impl TextMaps { diff --git a/resource_api/src/types/character.rs b/resource_api/src/types/character.rs index 6d59b14..32fea40 100644 --- a/resource_api/src/types/character.rs +++ b/resource_api/src/types/character.rs @@ -5,17 +5,17 @@ use super::item::ItemMini; use serde::{Deserialize, Serialize}; use std::collections::{BTreeMap, HashMap}; -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct Eidolon { pub name: String, pub desc: Desc, pub image: Image, } -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct CharacterSearch(pub BTreeMap); -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct CharacterMini { pub name: String, pub path: Path, @@ -24,10 +24,10 @@ pub struct CharacterMini { pub image: Image, } -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct CharacterDetail(pub HashMap); -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct CharacterFull { pub name: String, pub path: Path, diff --git a/resource_api/src/types/common.rs b/resource_api/src/types/common.rs index 6e0c03b..cc5746d 100644 --- a/resource_api/src/types/common.rs +++ b/resource_api/src/types/common.rs @@ -5,22 +5,28 @@ pub type Level = i32; pub type Count = i32; pub type Desc = String; -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct Image { pub path: String, pub filename: String, pub author_info: Option, } -#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq)] +#[derive(Default, Debug, Clone, Copy, Serialize, Deserialize, PartialEq)] pub enum StatValue { + #[default] + NoneType, Flat(f32), Percent(f32), } -#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[derive( + Default, Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash, +)] #[repr(u8)] pub enum StatType { + #[default] + NoneType = 0, Aggro = 1, AtkFlat = 2, AtkPercent = 3, @@ -48,17 +54,25 @@ pub enum StatType { Vulnerability = 25, } -#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[derive( + Default, Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash, +)] #[repr(u8)] pub enum Ascension { + #[default] + NoneType = 0, A2 = 1, A4 = 2, A6 = 3, } -#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[derive( + Default, Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash, +)] #[repr(u8)] pub enum Path { + #[default] + NoneType = 0, Destruction = 1, Hunt = 2, Erudition = 3, @@ -70,17 +84,25 @@ pub enum Path { Elation = 9, } -#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[derive( + Default, Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash, +)] #[repr(u8)] pub enum Rarity { + #[default] + NoneType = 0, ThreeStar = 3, FourStar = 4, FiveStar = 5, } -#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[derive( + Default, Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash, +)] #[repr(u8)] pub enum Element { + #[default] + NoneType = 0, Physical = 1, Fire = 2, Ice = 3, @@ -90,9 +112,13 @@ pub enum Element { Imaginary = 7, } -#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[derive( + Default, Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash, +)] #[repr(u8)] pub enum RelicType { + #[default] + NoneType = 0, Relic = 1, Planar = 2, } diff --git a/resource_api/src/types/item.rs b/resource_api/src/types/item.rs index 2f71922..61e0e1b 100644 --- a/resource_api/src/types/item.rs +++ b/resource_api/src/types/item.rs @@ -2,10 +2,10 @@ use super::common::{Id, Image}; use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct ItemSearch(pub BTreeMap); -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct ItemMini { pub name: String, pub image: Image, diff --git a/resource_api/src/types/lightcone.rs b/resource_api/src/types/lightcone.rs index 69d7931..97a79bf 100644 --- a/resource_api/src/types/lightcone.rs +++ b/resource_api/src/types/lightcone.rs @@ -3,10 +3,10 @@ use super::item::ItemMini; use serde::{Deserialize, Serialize}; use std::collections::{BTreeMap, HashMap}; -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct LightconeSearch(pub BTreeMap); -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct LightconeMini { pub name: String, pub path: Path, @@ -14,10 +14,10 @@ pub struct LightconeMini { pub image: Image, } -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct LightconeDetail(pub HashMap); -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct LightconeFull { pub name: String, pub path: Path, diff --git a/resource_api/src/types/relic.rs b/resource_api/src/types/relic.rs index 2bb0f04..0b09148 100644 --- a/resource_api/src/types/relic.rs +++ b/resource_api/src/types/relic.rs @@ -2,10 +2,10 @@ use super::common::{Desc, Id, Image, RelicType}; use serde::{Deserialize, Serialize}; use std::collections::{BTreeMap, HashMap}; -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct RelicSearch(pub BTreeMap); -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct RelicMini { pub name: String, pub r#type: RelicType,