use serde_repr::{Deserialize_repr, Serialize_repr};
use serde_with::DeserializeFromStr;
use strum::{Display, EnumString};
#[derive(Display, EnumString, Debug, PartialEq, Clone, DeserializeFromStr, serde::Serialize)]
pub enum WorkType {
ACN,
QIZ,
ADV,
RPG,
TBL,
DNV,
SLN,
TYP,
STG,
PZL,
ETC,
MNG,
SCM,
WBT,
ICG,
NRE,
KSV,
MOV,
SOU,
MUS,
TOL,
IMT,
AMT,
ET3,
VCM,
#[strum(default)]
Unknown(String),
}
#[derive(Display, Debug, Clone, PartialEq, Deserialize_repr, Serialize_repr)]
#[repr(u16)]
#[strum(serialize_all = "snake_case")]
pub enum AgeCategory {
#[serde(with = "i8")]
General = 1,
#[serde(with = "i8")]
R15 = 2,
#[serde(with = "i8")]
Adult = 3,
}
#[derive(Display, EnumString, PartialEq, DeserializeFromStr, Debug, Clone)]
#[strum(serialize_all = "snake_case")]
pub enum WorkCategory {
Doujin,
Books,
Pc,
App,
#[strum(default)]
Unknown(String),
}
#[derive(Display, EnumString, PartialEq, Debug, Clone, DeserializeFromStr)]
pub enum FileType {
EXE,
HTI,
HTE,
HMO,
IJP,
IGF,
IME,
IBP,
PNG,
AVI,
MVF,
MPG,
MWM,
MP4,
AAC,
WAV,
MP3,
ADO,
WMA,
FLC,
OGG,
PDF,
APK,
ET1,
#[strum(default)]
Unknown(String),
}