#[derive(Clone, Copy, Debug)]
pub enum Language {
Chinese,
English,
Japanese,
Korean,
Russian,
French,
Spanish,
Vietnamese,
ChineseXinanese,
ChineseCantonese,
ChineseHenanese,
ChineseUyghur,
ChineseTibetan,
Arabic,
German,
Italian,
}
impl Into<&str> for Language {
fn into(self) -> &'static str {
match self {
Self::Chinese => "cn",
Self::English => "en",
Self::Japanese => "ja",
Self::Korean => "ko",
Self::Russian => "ru",
Self::French => "fr",
Self::Spanish => "es",
Self::Vietnamese => "vi",
Self::Arabic => "ar",
Self::ChineseXinanese => "cn_xinanese",
Self::ChineseCantonese => "cn_cantonese",
Self::ChineseHenanese => "cn_henanese",
Self::ChineseUyghur => "cn_uyghur",
Self::ChineseTibetan => "cn_tibetan",
Self::German => "de",
Self::Italian => "it",
}
}
}
impl From<&str> for Language {
fn from(value: &str) -> Self {
match value {
"cn" => Self::Chinese,
"en" => Self::English,
"ja" => Self::Japanese,
"ko" => Self::Korean,
"ru" => Self::Russian,
"fr" => Self::French,
"es" => Self::Spanish,
"vi" => Self::Vietnamese,
"ar" => Self::Arabic,
"cn_xinanese" => Self::ChineseXinanese,
"cn_cantonese" => Self::ChineseCantonese,
"cn_henanese" => Self::ChineseHenanese,
"cn_uyghur" => Self::ChineseUyghur,
"cn_tibetan" => Self::ChineseTibetan,
"de" => Self::German,
"it" => Self::Italian,
_ => panic!("Unsupported input value: {}", value),
}
}
}
impl serde::Serialize for Language {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(Into::<&'static str>::into(self.clone()))
}
}
#[derive(Clone, Copy, Debug)]
pub enum ProfessionalDomain {
Court,
Edu,
Finance,
Medical,
Tech,
Culture,
Isp,
Sport,
Gov,
Game,
Ecom,
Mil,
Com,
Life,
Ent,
Car,
}
impl Into<&str> for ProfessionalDomain {
fn into(self) -> &'static str {
match self {
Self::Court => "court",
Self::Edu => "edu",
Self::Finance => "finance",
Self::Medical => "medical",
Self::Tech => "tech",
Self::Culture => "culture",
Self::Isp => "isp",
Self::Sport => "sport",
Self::Gov => "gov",
Self::Game => "game",
Self::Ecom => "ecom",
Self::Mil => "mil",
Self::Com => "com",
Self::Life => "life",
Self::Ent => "ent",
Self::Car => "car",
}
}
}
impl From<&str> for ProfessionalDomain {
fn from(value: &str) -> Self {
match value {
"court" => Self::Court,
"edu" => Self::Edu,
"finance" => Self::Finance,
"medical" => Self::Medical,
"tech" => Self::Tech,
"culture" => Self::Culture,
"isp" => Self::Isp,
"sport" => Self::Sport,
"gov" => Self::Gov,
"game" => Self::Game,
"ecom" => Self::Ecom,
"mil" => Self::Mil,
"com" => Self::Com,
"life" => Self::Life,
"ent" => Self::Ent,
"car" => Self::Car,
_ => panic!("Unsupported value: {}", value),
}
}
}
impl serde::Serialize for ProfessionalDomain {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(Into::<&'static str>::into(self.clone()))
}
}
#[derive(Clone, Copy, Debug)]
pub enum AudioMode {
FileStream,
ExternalUrl,
}
impl Into<&str> for AudioMode {
fn into(self) -> &'static str {
match self {
Self::FileStream => "fileStream",
Self::ExternalUrl => "urlLink",
}
}
}
impl From<&str> for AudioMode {
fn from(value: &str) -> Self {
match value {
"fileStream" => Self::FileStream,
"urlLink" => Self::ExternalUrl,
_ => panic!("Unsupported value: {value}"),
}
}
}
impl serde::Serialize for AudioMode {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(Into::<&'static str>::into(self.clone()))
}
}
#[derive(Clone, Copy, Debug)]
pub enum WavType {
StandardWav,
NonstandardWav,
}
impl Into<u8> for WavType {
fn into(self) -> u8 {
match self {
Self::StandardWav => 1,
Self::NonstandardWav => 0,
}
}
}
impl From<u8> for WavType {
fn from(value: u8) -> Self {
match value {
1 => Self::StandardWav,
0 => Self::NonstandardWav,
_ => panic!("Unsupported value: {value}"),
}
}
}
impl serde::Serialize for WavType {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_u8(Into::<u8>::into(self.clone()))
}
}
#[derive(Clone, Copy, Debug)]
pub enum LanguageMixType {
MixedChineseEnglish,
MainlyChinese,
ChineseOnly,
}
impl Into<u8> for LanguageMixType {
fn into(self) -> u8 {
match self {
Self::MixedChineseEnglish => 1,
Self::MainlyChinese => 2,
Self::ChineseOnly => 4,
}
}
}
impl From<u8> for LanguageMixType {
fn from(value: u8) -> Self {
match value {
1 => Self::MixedChineseEnglish,
2 => Self::MainlyChinese,
4 => Self::ChineseOnly,
_ => panic!("Unsupported value: {value}"),
}
}
}
impl serde::Serialize for LanguageMixType {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_u8(Into::<u8>::into(self.clone()))
}
}