1use tosho_macros::EnumName;
6
7#[derive(
9 Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
10)]
11pub enum ErrorAction {
12 Default = 0,
14 Unauthorized = 1,
16 Maintenance = 2,
18 GeoIPBlocked = 3,
20 #[invalid_enum]
22 Unrecognized = -1,
23}
24
25#[derive(
27 Clone,
28 Copy,
29 Debug,
30 PartialEq,
31 Eq,
32 Hash,
33 PartialOrd,
34 Ord,
35 EnumName,
36 ::tosho_macros::ProstEnumUnrecognized,
37)]
38pub enum Language {
39 English = 0,
41 Spanish = 1,
43 French = 2,
45 Indonesian = 3,
47 BrazilianPortuguese = 4,
49 Russian = 5,
51 Thai = 6,
53 German = 7,
55 Italian = 8,
59 Vietnamese = 9,
61 #[invalid_enum]
63 Unrecognized = -1,
64}
65
66impl Language {
67 pub fn pretty_name(&self) -> String {
78 pretty_name_fmt(self.to_name(), " ")
79 }
80
81 pub fn as_language_code(&self) -> &'static str {
91 match self {
92 Language::English => "eng",
93 Language::Spanish => "spa",
94 Language::French => "fra",
95 Language::Indonesian => "ind",
96 Language::BrazilianPortuguese => "ptb",
97 Language::Russian => "rus",
98 Language::Thai => "tha",
99 Language::German => "deu",
100 Language::Italian => "ita",
101 Language::Vietnamese => "vie",
102 Language::Unrecognized => "unknown",
103 }
104 }
105
106 pub fn as_country_code(&self) -> &'static str {
116 match self {
117 Language::English => "en",
118 Language::Spanish => "es",
119 Language::French => "fr",
120 Language::Indonesian => "in",
121 Language::BrazilianPortuguese => "pt",
122 Language::Russian => "ru",
123 Language::Thai => "th",
124 Language::German => "de",
125 Language::Italian => "it",
126 Language::Vietnamese => "vi",
127 Language::Unrecognized => "unknown",
128 }
129 }
130}
131
132#[derive(
134 Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
135)]
136pub enum TitleUpdateStatus {
137 None = 0,
139 New = 1,
141 Updated = 2,
143 ReEdition = 3,
145 Creator = 4,
147 #[invalid_enum]
149 Unrecognized = -1,
150}
151
152#[derive(
154 Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
155)]
156pub enum PageType {
157 Single = 0,
159 Left = 1,
161 Right = 2,
163 Double = 3,
165 #[invalid_enum]
167 Unrecognized = -1,
168}
169
170#[derive(
172 Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
173)]
174pub enum ChapterType {
175 Latest = 0,
177 Sequence = 1,
179 NoSequence = 2,
181 #[invalid_enum]
183 Unrecognized = -1,
184}
185
186#[derive(
188 Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
189)]
190pub enum UpdateProfileResult {
191 Success = 0,
193 Duplicate = 1,
195 BadName = 2,
197 #[invalid_enum]
199 Unrecognized = -1,
200}
201
202#[derive(
204 Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
205)]
206pub enum FeedbackType {
207 Question = 0,
209 Answer = 1,
211 #[invalid_enum]
213 Unrecognized = -1,
214}
215
216#[derive(
218 Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
219)]
220pub enum PlanOfferType {
221 Free = 0,
223 Introductory = 1,
225 Promotional = 2,
227 #[invalid_enum]
229 Unrecognized = -1,
230}
231
232#[derive(
234 Clone,
235 Copy,
236 Debug,
237 PartialEq,
238 Eq,
239 Hash,
240 PartialOrd,
241 Ord,
242 EnumName,
243 ::tosho_macros::ProstEnumUnrecognized,
244)]
245pub enum TitleReleaseSchedule {
246 None = 0,
248 Daily = 1,
250 Weekly = 2,
252 BiWeekly = 3,
254 Monthly = 4,
256 BiMonthly = 5,
258 TriMonthly = 6,
260 Other = 7,
262 Completed = 8,
264 #[invalid_enum]
266 Unrecognized = -1,
267}
268
269impl TitleReleaseSchedule {
270 pub fn pretty_name(&self) -> String {
281 pretty_name_fmt(self.to_name(), "-")
282 }
283}
284
285#[derive(
287 Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
288)]
289pub enum TitleRating {
290 AllAges = 0,
292 Teen = 1,
294 TeenPlus = 2,
296 Mature = 3,
298 #[invalid_enum]
300 Unrecognized = -1,
301}
302
303fn pretty_name_fmt(name: &str, sep: &str) -> String {
304 let split_at_upper: Vec<_> = name.match_indices(char::is_uppercase).collect();
305 let mut splitted_name: Vec<&str> = vec![];
306 split_at_upper
307 .iter()
308 .enumerate()
309 .for_each(|(i, (start, _))| {
310 if i == 0 {
311 let data = &name[..*start];
312 if !data.is_empty() {
313 splitted_name.push(data);
314 }
315 }
316 let next_start = split_at_upper.get(i + 1);
317 match next_start {
318 Some((end, _)) => splitted_name.push(&name[*start..*end]),
319 None => splitted_name.push(&name[*start..]),
320 }
321 });
322
323 let mut merge_back = splitted_name.join(sep);
324 let some_words = &["The", "A", "An"];
325 some_words.iter().for_each(|&word| {
326 merge_back = merge_back.replace(&format!(" {word}"), &format!(" {}", word.to_lowercase()));
327 });
328
329 if splitted_name.len() > 1 {
330 match splitted_name[0] {
331 "e" => merge_back = merge_back.replacen("e ", "e-", 1),
332 "D" => merge_back = merge_back.replacen("D ", "Digital ", 1),
333 _ => (),
334 }
335 }
336 if merge_back.contains('_') {
337 merge_back = merge_back.replace('_', " ");
338 }
339 merge_back
340}
341
342#[derive(
347 Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::tosho_macros::ProstEnumUnrecognized,
348)]
349pub enum ChapterPosition {
350 Middle = 0,
352 First = 1,
354 Last = 2,
356 #[invalid_enum]
358 Unrecognized = -1,
359}