use tosho_macros::EnumName;
#[derive(
Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
)]
pub enum ErrorAction {
Default = 0,
Unauthorized = 1,
Maintenance = 2,
GeoIPBlocked = 3,
#[invalid_enum]
Unrecognized = -1,
}
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
EnumName,
::tosho_macros::ProstEnumUnrecognized,
)]
pub enum Language {
English = 0,
Spanish = 1,
French = 2,
Indonesian = 3,
BrazilianPortuguese = 4,
Russian = 5,
Thai = 6,
German = 7,
Italian = 8,
Vietnamese = 9,
#[invalid_enum]
Unrecognized = -1,
}
impl Language {
pub fn pretty_name(&self) -> String {
pretty_name_fmt(self.to_name(), " ")
}
pub fn as_language_code(&self) -> &'static str {
match self {
Language::English => "eng",
Language::Spanish => "spa",
Language::French => "fra",
Language::Indonesian => "ind",
Language::BrazilianPortuguese => "ptb",
Language::Russian => "rus",
Language::Thai => "tha",
Language::German => "deu",
Language::Italian => "ita",
Language::Vietnamese => "vie",
Language::Unrecognized => "unknown",
}
}
pub fn as_country_code(&self) -> &'static str {
match self {
Language::English => "en",
Language::Spanish => "es",
Language::French => "fr",
Language::Indonesian => "in",
Language::BrazilianPortuguese => "pt",
Language::Russian => "ru",
Language::Thai => "th",
Language::German => "de",
Language::Italian => "it",
Language::Vietnamese => "vi",
Language::Unrecognized => "unknown",
}
}
}
#[derive(
Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
)]
pub enum TitleUpdateStatus {
None = 0,
New = 1,
Updated = 2,
ReEdition = 3,
Creator = 4,
#[invalid_enum]
Unrecognized = -1,
}
#[derive(
Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
)]
pub enum PageType {
Single = 0,
Left = 1,
Right = 2,
Double = 3,
#[invalid_enum]
Unrecognized = -1,
}
#[derive(
Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
)]
pub enum ChapterType {
Latest = 0,
Sequence = 1,
NoSequence = 2,
#[invalid_enum]
Unrecognized = -1,
}
#[derive(
Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
)]
pub enum UpdateProfileResult {
Success = 0,
Duplicate = 1,
BadName = 2,
#[invalid_enum]
Unrecognized = -1,
}
#[derive(
Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
)]
pub enum FeedbackType {
Question = 0,
Answer = 1,
#[invalid_enum]
Unrecognized = -1,
}
#[derive(
Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
)]
pub enum PlanOfferType {
Free = 0,
Introductory = 1,
Promotional = 2,
#[invalid_enum]
Unrecognized = -1,
}
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
EnumName,
::tosho_macros::ProstEnumUnrecognized,
)]
pub enum TitleReleaseSchedule {
None = 0,
Daily = 1,
Weekly = 2,
BiWeekly = 3,
Monthly = 4,
BiMonthly = 5,
TriMonthly = 6,
Other = 7,
Completed = 8,
#[invalid_enum]
Unrecognized = -1,
}
impl TitleReleaseSchedule {
pub fn pretty_name(&self) -> String {
pretty_name_fmt(self.to_name(), "-")
}
}
#[derive(
Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
)]
pub enum TitleRating {
AllAges = 0,
Teen = 1,
TeenPlus = 2,
Mature = 3,
#[invalid_enum]
Unrecognized = -1,
}
fn pretty_name_fmt(name: &str, sep: &str) -> String {
let split_at_upper: Vec<_> = name.match_indices(char::is_uppercase).collect();
let mut splitted_name: Vec<&str> = vec![];
split_at_upper
.iter()
.enumerate()
.for_each(|(i, (start, _))| {
if i == 0 {
let data = &name[..*start];
if !data.is_empty() {
splitted_name.push(data);
}
}
let next_start = split_at_upper.get(i + 1);
match next_start {
Some((end, _)) => splitted_name.push(&name[*start..*end]),
None => splitted_name.push(&name[*start..]),
}
});
let mut merge_back = splitted_name.join(sep);
let some_words = &["The", "A", "An"];
some_words.iter().for_each(|&word| {
merge_back = merge_back.replace(&format!(" {word}"), &format!(" {}", word.to_lowercase()));
});
if splitted_name.len() > 1 {
match splitted_name[0] {
"e" => merge_back = merge_back.replacen("e ", "e-", 1),
"D" => merge_back = merge_back.replacen("D ", "Digital ", 1),
_ => (),
}
}
if merge_back.contains('_') {
merge_back = merge_back.replace('_', " ");
}
merge_back
}
#[derive(
Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
)]
pub enum ChapterPosition {
Middle = 0,
First = 1,
Last = 2,
#[invalid_enum]
Unrecognized = -1,
}