default trait because i felt like it

This commit is contained in:
yuvlian
2026-02-21 14:31:55 +07:00
parent 633228af42
commit 89b8e5f0ef
7 changed files with 50 additions and 24 deletions

View File

@@ -6,7 +6,7 @@ use anyhow::{Context, Result};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::collections::BTreeMap; use std::collections::BTreeMap;
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct ItemConfigs(pub Vec<ItemConfig>); pub struct ItemConfigs(pub Vec<ItemConfig>);
impl ItemConfigs { impl ItemConfigs {
@@ -41,7 +41,7 @@ impl ItemConfigs {
} }
} }
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct ItemConfig { pub struct ItemConfig {
#[serde(rename = "ID")] #[serde(rename = "ID")]
pub id: i32, pub id: i32,

View File

@@ -5,7 +5,7 @@ use std::collections::HashMap;
use std::fs::File; use std::fs::File;
use std::io::BufReader; use std::io::BufReader;
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct TextMaps(HashMap<i32, TextMap>); pub struct TextMaps(HashMap<i32, TextMap>);
impl TextMaps { impl TextMaps {

View File

@@ -5,17 +5,17 @@ use super::item::ItemMini;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::collections::{BTreeMap, HashMap}; use std::collections::{BTreeMap, HashMap};
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct Eidolon { pub struct Eidolon {
pub name: String, pub name: String,
pub desc: Desc, pub desc: Desc,
pub image: Image, pub image: Image,
} }
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct CharacterSearch(pub BTreeMap<Id, CharacterMini>); pub struct CharacterSearch(pub BTreeMap<Id, CharacterMini>);
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct CharacterMini { pub struct CharacterMini {
pub name: String, pub name: String,
pub path: Path, pub path: Path,
@@ -24,10 +24,10 @@ pub struct CharacterMini {
pub image: Image, pub image: Image,
} }
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct CharacterDetail(pub HashMap<Id, CharacterFull>); pub struct CharacterDetail(pub HashMap<Id, CharacterFull>);
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct CharacterFull { pub struct CharacterFull {
pub name: String, pub name: String,
pub path: Path, pub path: Path,

View File

@@ -5,22 +5,28 @@ pub type Level = i32;
pub type Count = i32; pub type Count = i32;
pub type Desc = String; pub type Desc = String;
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct Image { pub struct Image {
pub path: String, pub path: String,
pub filename: String, pub filename: String,
pub author_info: Option<String>, pub author_info: Option<String>,
} }
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq)] #[derive(Default, Debug, Clone, Copy, Serialize, Deserialize, PartialEq)]
pub enum StatValue { pub enum StatValue {
#[default]
NoneType,
Flat(f32), Flat(f32),
Percent(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)] #[repr(u8)]
pub enum StatType { pub enum StatType {
#[default]
NoneType = 0,
Aggro = 1, Aggro = 1,
AtkFlat = 2, AtkFlat = 2,
AtkPercent = 3, AtkPercent = 3,
@@ -48,17 +54,25 @@ pub enum StatType {
Vulnerability = 25, 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)] #[repr(u8)]
pub enum Ascension { pub enum Ascension {
#[default]
NoneType = 0,
A2 = 1, A2 = 1,
A4 = 2, A4 = 2,
A6 = 3, 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)] #[repr(u8)]
pub enum Path { pub enum Path {
#[default]
NoneType = 0,
Destruction = 1, Destruction = 1,
Hunt = 2, Hunt = 2,
Erudition = 3, Erudition = 3,
@@ -70,17 +84,25 @@ pub enum Path {
Elation = 9, 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)] #[repr(u8)]
pub enum Rarity { pub enum Rarity {
#[default]
NoneType = 0,
ThreeStar = 3, ThreeStar = 3,
FourStar = 4, FourStar = 4,
FiveStar = 5, 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)] #[repr(u8)]
pub enum Element { pub enum Element {
#[default]
NoneType = 0,
Physical = 1, Physical = 1,
Fire = 2, Fire = 2,
Ice = 3, Ice = 3,
@@ -90,9 +112,13 @@ pub enum Element {
Imaginary = 7, 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)] #[repr(u8)]
pub enum RelicType { pub enum RelicType {
#[default]
NoneType = 0,
Relic = 1, Relic = 1,
Planar = 2, Planar = 2,
} }

View File

@@ -2,10 +2,10 @@ use super::common::{Id, Image};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::collections::BTreeMap; use std::collections::BTreeMap;
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct ItemSearch(pub BTreeMap<Id, ItemMini>); pub struct ItemSearch(pub BTreeMap<Id, ItemMini>);
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct ItemMini { pub struct ItemMini {
pub name: String, pub name: String,
pub image: Image, pub image: Image,

View File

@@ -3,10 +3,10 @@ use super::item::ItemMini;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::collections::{BTreeMap, HashMap}; use std::collections::{BTreeMap, HashMap};
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct LightconeSearch(pub BTreeMap<Id, LightconeMini>); pub struct LightconeSearch(pub BTreeMap<Id, LightconeMini>);
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct LightconeMini { pub struct LightconeMini {
pub name: String, pub name: String,
pub path: Path, pub path: Path,
@@ -14,10 +14,10 @@ pub struct LightconeMini {
pub image: Image, pub image: Image,
} }
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct LightconeDetail(pub HashMap<Id, LightconeFull>); pub struct LightconeDetail(pub HashMap<Id, LightconeFull>);
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct LightconeFull { pub struct LightconeFull {
pub name: String, pub name: String,
pub path: Path, pub path: Path,

View File

@@ -2,10 +2,10 @@ use super::common::{Desc, Id, Image, RelicType};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::collections::{BTreeMap, HashMap}; use std::collections::{BTreeMap, HashMap};
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct RelicSearch(pub BTreeMap<Id, RelicMini>); pub struct RelicSearch(pub BTreeMap<Id, RelicMini>);
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct RelicMini { pub struct RelicMini {
pub name: String, pub name: String,
pub r#type: RelicType, pub r#type: RelicType,