1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: com.atproto.moderation.defs
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8pub mod create_report;
9
10#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11pub enum ReasonType<'a> {
12 ComAtprotoModerationDefsReasonSpam,
13 ComAtprotoModerationDefsReasonViolation,
14 ComAtprotoModerationDefsReasonMisleading,
15 ComAtprotoModerationDefsReasonSexual,
16 ComAtprotoModerationDefsReasonRude,
17 ComAtprotoModerationDefsReasonOther,
18 ComAtprotoModerationDefsReasonAppeal,
19 ToolsOzoneReportDefsReasonAppeal,
20 ToolsOzoneReportDefsReasonOther,
21 ToolsOzoneReportDefsReasonViolenceAnimal,
22 ToolsOzoneReportDefsReasonViolenceThreats,
23 ToolsOzoneReportDefsReasonViolenceGraphicContent,
24 ToolsOzoneReportDefsReasonViolenceGlorification,
25 ToolsOzoneReportDefsReasonViolenceExtremistContent,
26 ToolsOzoneReportDefsReasonViolenceTrafficking,
27 ToolsOzoneReportDefsReasonViolenceOther,
28 ToolsOzoneReportDefsReasonSexualAbuseContent,
29 ToolsOzoneReportDefsReasonSexualNcii,
30 ToolsOzoneReportDefsReasonSexualDeepfake,
31 ToolsOzoneReportDefsReasonSexualAnimal,
32 ToolsOzoneReportDefsReasonSexualUnlabeled,
33 ToolsOzoneReportDefsReasonSexualOther,
34 ToolsOzoneReportDefsReasonChildSafetyCsam,
35 ToolsOzoneReportDefsReasonChildSafetyGroom,
36 ToolsOzoneReportDefsReasonChildSafetyPrivacy,
37 ToolsOzoneReportDefsReasonChildSafetyHarassment,
38 ToolsOzoneReportDefsReasonChildSafetyOther,
39 ToolsOzoneReportDefsReasonHarassmentTroll,
40 ToolsOzoneReportDefsReasonHarassmentTargeted,
41 ToolsOzoneReportDefsReasonHarassmentHateSpeech,
42 ToolsOzoneReportDefsReasonHarassmentDoxxing,
43 ToolsOzoneReportDefsReasonHarassmentOther,
44 ToolsOzoneReportDefsReasonMisleadingBot,
45 ToolsOzoneReportDefsReasonMisleadingImpersonation,
46 ToolsOzoneReportDefsReasonMisleadingSpam,
47 ToolsOzoneReportDefsReasonMisleadingScam,
48 ToolsOzoneReportDefsReasonMisleadingElections,
49 ToolsOzoneReportDefsReasonMisleadingOther,
50 ToolsOzoneReportDefsReasonRuleSiteSecurity,
51 ToolsOzoneReportDefsReasonRuleProhibitedSales,
52 ToolsOzoneReportDefsReasonRuleBanEvasion,
53 ToolsOzoneReportDefsReasonRuleOther,
54 ToolsOzoneReportDefsReasonSelfHarmContent,
55 ToolsOzoneReportDefsReasonSelfHarmEd,
56 ToolsOzoneReportDefsReasonSelfHarmStunts,
57 ToolsOzoneReportDefsReasonSelfHarmSubstances,
58 ToolsOzoneReportDefsReasonSelfHarmOther,
59 Other(jacquard_common::CowStr<'a>),
60}
61
62impl<'a> ReasonType<'a> {
63 pub fn as_str(&self) -> &str {
64 match self {
65 Self::ComAtprotoModerationDefsReasonSpam => {
66 "com.atproto.moderation.defs#reasonSpam"
67 }
68 Self::ComAtprotoModerationDefsReasonViolation => {
69 "com.atproto.moderation.defs#reasonViolation"
70 }
71 Self::ComAtprotoModerationDefsReasonMisleading => {
72 "com.atproto.moderation.defs#reasonMisleading"
73 }
74 Self::ComAtprotoModerationDefsReasonSexual => {
75 "com.atproto.moderation.defs#reasonSexual"
76 }
77 Self::ComAtprotoModerationDefsReasonRude => {
78 "com.atproto.moderation.defs#reasonRude"
79 }
80 Self::ComAtprotoModerationDefsReasonOther => {
81 "com.atproto.moderation.defs#reasonOther"
82 }
83 Self::ComAtprotoModerationDefsReasonAppeal => {
84 "com.atproto.moderation.defs#reasonAppeal"
85 }
86 Self::ToolsOzoneReportDefsReasonAppeal => {
87 "tools.ozone.report.defs#reasonAppeal"
88 }
89 Self::ToolsOzoneReportDefsReasonOther => {
90 "tools.ozone.report.defs#reasonOther"
91 }
92 Self::ToolsOzoneReportDefsReasonViolenceAnimal => {
93 "tools.ozone.report.defs#reasonViolenceAnimal"
94 }
95 Self::ToolsOzoneReportDefsReasonViolenceThreats => {
96 "tools.ozone.report.defs#reasonViolenceThreats"
97 }
98 Self::ToolsOzoneReportDefsReasonViolenceGraphicContent => {
99 "tools.ozone.report.defs#reasonViolenceGraphicContent"
100 }
101 Self::ToolsOzoneReportDefsReasonViolenceGlorification => {
102 "tools.ozone.report.defs#reasonViolenceGlorification"
103 }
104 Self::ToolsOzoneReportDefsReasonViolenceExtremistContent => {
105 "tools.ozone.report.defs#reasonViolenceExtremistContent"
106 }
107 Self::ToolsOzoneReportDefsReasonViolenceTrafficking => {
108 "tools.ozone.report.defs#reasonViolenceTrafficking"
109 }
110 Self::ToolsOzoneReportDefsReasonViolenceOther => {
111 "tools.ozone.report.defs#reasonViolenceOther"
112 }
113 Self::ToolsOzoneReportDefsReasonSexualAbuseContent => {
114 "tools.ozone.report.defs#reasonSexualAbuseContent"
115 }
116 Self::ToolsOzoneReportDefsReasonSexualNcii => {
117 "tools.ozone.report.defs#reasonSexualNCII"
118 }
119 Self::ToolsOzoneReportDefsReasonSexualDeepfake => {
120 "tools.ozone.report.defs#reasonSexualDeepfake"
121 }
122 Self::ToolsOzoneReportDefsReasonSexualAnimal => {
123 "tools.ozone.report.defs#reasonSexualAnimal"
124 }
125 Self::ToolsOzoneReportDefsReasonSexualUnlabeled => {
126 "tools.ozone.report.defs#reasonSexualUnlabeled"
127 }
128 Self::ToolsOzoneReportDefsReasonSexualOther => {
129 "tools.ozone.report.defs#reasonSexualOther"
130 }
131 Self::ToolsOzoneReportDefsReasonChildSafetyCsam => {
132 "tools.ozone.report.defs#reasonChildSafetyCSAM"
133 }
134 Self::ToolsOzoneReportDefsReasonChildSafetyGroom => {
135 "tools.ozone.report.defs#reasonChildSafetyGroom"
136 }
137 Self::ToolsOzoneReportDefsReasonChildSafetyPrivacy => {
138 "tools.ozone.report.defs#reasonChildSafetyPrivacy"
139 }
140 Self::ToolsOzoneReportDefsReasonChildSafetyHarassment => {
141 "tools.ozone.report.defs#reasonChildSafetyHarassment"
142 }
143 Self::ToolsOzoneReportDefsReasonChildSafetyOther => {
144 "tools.ozone.report.defs#reasonChildSafetyOther"
145 }
146 Self::ToolsOzoneReportDefsReasonHarassmentTroll => {
147 "tools.ozone.report.defs#reasonHarassmentTroll"
148 }
149 Self::ToolsOzoneReportDefsReasonHarassmentTargeted => {
150 "tools.ozone.report.defs#reasonHarassmentTargeted"
151 }
152 Self::ToolsOzoneReportDefsReasonHarassmentHateSpeech => {
153 "tools.ozone.report.defs#reasonHarassmentHateSpeech"
154 }
155 Self::ToolsOzoneReportDefsReasonHarassmentDoxxing => {
156 "tools.ozone.report.defs#reasonHarassmentDoxxing"
157 }
158 Self::ToolsOzoneReportDefsReasonHarassmentOther => {
159 "tools.ozone.report.defs#reasonHarassmentOther"
160 }
161 Self::ToolsOzoneReportDefsReasonMisleadingBot => {
162 "tools.ozone.report.defs#reasonMisleadingBot"
163 }
164 Self::ToolsOzoneReportDefsReasonMisleadingImpersonation => {
165 "tools.ozone.report.defs#reasonMisleadingImpersonation"
166 }
167 Self::ToolsOzoneReportDefsReasonMisleadingSpam => {
168 "tools.ozone.report.defs#reasonMisleadingSpam"
169 }
170 Self::ToolsOzoneReportDefsReasonMisleadingScam => {
171 "tools.ozone.report.defs#reasonMisleadingScam"
172 }
173 Self::ToolsOzoneReportDefsReasonMisleadingElections => {
174 "tools.ozone.report.defs#reasonMisleadingElections"
175 }
176 Self::ToolsOzoneReportDefsReasonMisleadingOther => {
177 "tools.ozone.report.defs#reasonMisleadingOther"
178 }
179 Self::ToolsOzoneReportDefsReasonRuleSiteSecurity => {
180 "tools.ozone.report.defs#reasonRuleSiteSecurity"
181 }
182 Self::ToolsOzoneReportDefsReasonRuleProhibitedSales => {
183 "tools.ozone.report.defs#reasonRuleProhibitedSales"
184 }
185 Self::ToolsOzoneReportDefsReasonRuleBanEvasion => {
186 "tools.ozone.report.defs#reasonRuleBanEvasion"
187 }
188 Self::ToolsOzoneReportDefsReasonRuleOther => {
189 "tools.ozone.report.defs#reasonRuleOther"
190 }
191 Self::ToolsOzoneReportDefsReasonSelfHarmContent => {
192 "tools.ozone.report.defs#reasonSelfHarmContent"
193 }
194 Self::ToolsOzoneReportDefsReasonSelfHarmEd => {
195 "tools.ozone.report.defs#reasonSelfHarmED"
196 }
197 Self::ToolsOzoneReportDefsReasonSelfHarmStunts => {
198 "tools.ozone.report.defs#reasonSelfHarmStunts"
199 }
200 Self::ToolsOzoneReportDefsReasonSelfHarmSubstances => {
201 "tools.ozone.report.defs#reasonSelfHarmSubstances"
202 }
203 Self::ToolsOzoneReportDefsReasonSelfHarmOther => {
204 "tools.ozone.report.defs#reasonSelfHarmOther"
205 }
206 Self::Other(s) => s.as_ref(),
207 }
208 }
209}
210
211impl<'a> From<&'a str> for ReasonType<'a> {
212 fn from(s: &'a str) -> Self {
213 match s {
214 "com.atproto.moderation.defs#reasonSpam" => {
215 Self::ComAtprotoModerationDefsReasonSpam
216 }
217 "com.atproto.moderation.defs#reasonViolation" => {
218 Self::ComAtprotoModerationDefsReasonViolation
219 }
220 "com.atproto.moderation.defs#reasonMisleading" => {
221 Self::ComAtprotoModerationDefsReasonMisleading
222 }
223 "com.atproto.moderation.defs#reasonSexual" => {
224 Self::ComAtprotoModerationDefsReasonSexual
225 }
226 "com.atproto.moderation.defs#reasonRude" => {
227 Self::ComAtprotoModerationDefsReasonRude
228 }
229 "com.atproto.moderation.defs#reasonOther" => {
230 Self::ComAtprotoModerationDefsReasonOther
231 }
232 "com.atproto.moderation.defs#reasonAppeal" => {
233 Self::ComAtprotoModerationDefsReasonAppeal
234 }
235 "tools.ozone.report.defs#reasonAppeal" => {
236 Self::ToolsOzoneReportDefsReasonAppeal
237 }
238 "tools.ozone.report.defs#reasonOther" => {
239 Self::ToolsOzoneReportDefsReasonOther
240 }
241 "tools.ozone.report.defs#reasonViolenceAnimal" => {
242 Self::ToolsOzoneReportDefsReasonViolenceAnimal
243 }
244 "tools.ozone.report.defs#reasonViolenceThreats" => {
245 Self::ToolsOzoneReportDefsReasonViolenceThreats
246 }
247 "tools.ozone.report.defs#reasonViolenceGraphicContent" => {
248 Self::ToolsOzoneReportDefsReasonViolenceGraphicContent
249 }
250 "tools.ozone.report.defs#reasonViolenceGlorification" => {
251 Self::ToolsOzoneReportDefsReasonViolenceGlorification
252 }
253 "tools.ozone.report.defs#reasonViolenceExtremistContent" => {
254 Self::ToolsOzoneReportDefsReasonViolenceExtremistContent
255 }
256 "tools.ozone.report.defs#reasonViolenceTrafficking" => {
257 Self::ToolsOzoneReportDefsReasonViolenceTrafficking
258 }
259 "tools.ozone.report.defs#reasonViolenceOther" => {
260 Self::ToolsOzoneReportDefsReasonViolenceOther
261 }
262 "tools.ozone.report.defs#reasonSexualAbuseContent" => {
263 Self::ToolsOzoneReportDefsReasonSexualAbuseContent
264 }
265 "tools.ozone.report.defs#reasonSexualNCII" => {
266 Self::ToolsOzoneReportDefsReasonSexualNcii
267 }
268 "tools.ozone.report.defs#reasonSexualDeepfake" => {
269 Self::ToolsOzoneReportDefsReasonSexualDeepfake
270 }
271 "tools.ozone.report.defs#reasonSexualAnimal" => {
272 Self::ToolsOzoneReportDefsReasonSexualAnimal
273 }
274 "tools.ozone.report.defs#reasonSexualUnlabeled" => {
275 Self::ToolsOzoneReportDefsReasonSexualUnlabeled
276 }
277 "tools.ozone.report.defs#reasonSexualOther" => {
278 Self::ToolsOzoneReportDefsReasonSexualOther
279 }
280 "tools.ozone.report.defs#reasonChildSafetyCSAM" => {
281 Self::ToolsOzoneReportDefsReasonChildSafetyCsam
282 }
283 "tools.ozone.report.defs#reasonChildSafetyGroom" => {
284 Self::ToolsOzoneReportDefsReasonChildSafetyGroom
285 }
286 "tools.ozone.report.defs#reasonChildSafetyPrivacy" => {
287 Self::ToolsOzoneReportDefsReasonChildSafetyPrivacy
288 }
289 "tools.ozone.report.defs#reasonChildSafetyHarassment" => {
290 Self::ToolsOzoneReportDefsReasonChildSafetyHarassment
291 }
292 "tools.ozone.report.defs#reasonChildSafetyOther" => {
293 Self::ToolsOzoneReportDefsReasonChildSafetyOther
294 }
295 "tools.ozone.report.defs#reasonHarassmentTroll" => {
296 Self::ToolsOzoneReportDefsReasonHarassmentTroll
297 }
298 "tools.ozone.report.defs#reasonHarassmentTargeted" => {
299 Self::ToolsOzoneReportDefsReasonHarassmentTargeted
300 }
301 "tools.ozone.report.defs#reasonHarassmentHateSpeech" => {
302 Self::ToolsOzoneReportDefsReasonHarassmentHateSpeech
303 }
304 "tools.ozone.report.defs#reasonHarassmentDoxxing" => {
305 Self::ToolsOzoneReportDefsReasonHarassmentDoxxing
306 }
307 "tools.ozone.report.defs#reasonHarassmentOther" => {
308 Self::ToolsOzoneReportDefsReasonHarassmentOther
309 }
310 "tools.ozone.report.defs#reasonMisleadingBot" => {
311 Self::ToolsOzoneReportDefsReasonMisleadingBot
312 }
313 "tools.ozone.report.defs#reasonMisleadingImpersonation" => {
314 Self::ToolsOzoneReportDefsReasonMisleadingImpersonation
315 }
316 "tools.ozone.report.defs#reasonMisleadingSpam" => {
317 Self::ToolsOzoneReportDefsReasonMisleadingSpam
318 }
319 "tools.ozone.report.defs#reasonMisleadingScam" => {
320 Self::ToolsOzoneReportDefsReasonMisleadingScam
321 }
322 "tools.ozone.report.defs#reasonMisleadingElections" => {
323 Self::ToolsOzoneReportDefsReasonMisleadingElections
324 }
325 "tools.ozone.report.defs#reasonMisleadingOther" => {
326 Self::ToolsOzoneReportDefsReasonMisleadingOther
327 }
328 "tools.ozone.report.defs#reasonRuleSiteSecurity" => {
329 Self::ToolsOzoneReportDefsReasonRuleSiteSecurity
330 }
331 "tools.ozone.report.defs#reasonRuleProhibitedSales" => {
332 Self::ToolsOzoneReportDefsReasonRuleProhibitedSales
333 }
334 "tools.ozone.report.defs#reasonRuleBanEvasion" => {
335 Self::ToolsOzoneReportDefsReasonRuleBanEvasion
336 }
337 "tools.ozone.report.defs#reasonRuleOther" => {
338 Self::ToolsOzoneReportDefsReasonRuleOther
339 }
340 "tools.ozone.report.defs#reasonSelfHarmContent" => {
341 Self::ToolsOzoneReportDefsReasonSelfHarmContent
342 }
343 "tools.ozone.report.defs#reasonSelfHarmED" => {
344 Self::ToolsOzoneReportDefsReasonSelfHarmEd
345 }
346 "tools.ozone.report.defs#reasonSelfHarmStunts" => {
347 Self::ToolsOzoneReportDefsReasonSelfHarmStunts
348 }
349 "tools.ozone.report.defs#reasonSelfHarmSubstances" => {
350 Self::ToolsOzoneReportDefsReasonSelfHarmSubstances
351 }
352 "tools.ozone.report.defs#reasonSelfHarmOther" => {
353 Self::ToolsOzoneReportDefsReasonSelfHarmOther
354 }
355 _ => Self::Other(jacquard_common::CowStr::from(s)),
356 }
357 }
358}
359
360impl<'a> From<String> for ReasonType<'a> {
361 fn from(s: String) -> Self {
362 match s.as_str() {
363 "com.atproto.moderation.defs#reasonSpam" => {
364 Self::ComAtprotoModerationDefsReasonSpam
365 }
366 "com.atproto.moderation.defs#reasonViolation" => {
367 Self::ComAtprotoModerationDefsReasonViolation
368 }
369 "com.atproto.moderation.defs#reasonMisleading" => {
370 Self::ComAtprotoModerationDefsReasonMisleading
371 }
372 "com.atproto.moderation.defs#reasonSexual" => {
373 Self::ComAtprotoModerationDefsReasonSexual
374 }
375 "com.atproto.moderation.defs#reasonRude" => {
376 Self::ComAtprotoModerationDefsReasonRude
377 }
378 "com.atproto.moderation.defs#reasonOther" => {
379 Self::ComAtprotoModerationDefsReasonOther
380 }
381 "com.atproto.moderation.defs#reasonAppeal" => {
382 Self::ComAtprotoModerationDefsReasonAppeal
383 }
384 "tools.ozone.report.defs#reasonAppeal" => {
385 Self::ToolsOzoneReportDefsReasonAppeal
386 }
387 "tools.ozone.report.defs#reasonOther" => {
388 Self::ToolsOzoneReportDefsReasonOther
389 }
390 "tools.ozone.report.defs#reasonViolenceAnimal" => {
391 Self::ToolsOzoneReportDefsReasonViolenceAnimal
392 }
393 "tools.ozone.report.defs#reasonViolenceThreats" => {
394 Self::ToolsOzoneReportDefsReasonViolenceThreats
395 }
396 "tools.ozone.report.defs#reasonViolenceGraphicContent" => {
397 Self::ToolsOzoneReportDefsReasonViolenceGraphicContent
398 }
399 "tools.ozone.report.defs#reasonViolenceGlorification" => {
400 Self::ToolsOzoneReportDefsReasonViolenceGlorification
401 }
402 "tools.ozone.report.defs#reasonViolenceExtremistContent" => {
403 Self::ToolsOzoneReportDefsReasonViolenceExtremistContent
404 }
405 "tools.ozone.report.defs#reasonViolenceTrafficking" => {
406 Self::ToolsOzoneReportDefsReasonViolenceTrafficking
407 }
408 "tools.ozone.report.defs#reasonViolenceOther" => {
409 Self::ToolsOzoneReportDefsReasonViolenceOther
410 }
411 "tools.ozone.report.defs#reasonSexualAbuseContent" => {
412 Self::ToolsOzoneReportDefsReasonSexualAbuseContent
413 }
414 "tools.ozone.report.defs#reasonSexualNCII" => {
415 Self::ToolsOzoneReportDefsReasonSexualNcii
416 }
417 "tools.ozone.report.defs#reasonSexualDeepfake" => {
418 Self::ToolsOzoneReportDefsReasonSexualDeepfake
419 }
420 "tools.ozone.report.defs#reasonSexualAnimal" => {
421 Self::ToolsOzoneReportDefsReasonSexualAnimal
422 }
423 "tools.ozone.report.defs#reasonSexualUnlabeled" => {
424 Self::ToolsOzoneReportDefsReasonSexualUnlabeled
425 }
426 "tools.ozone.report.defs#reasonSexualOther" => {
427 Self::ToolsOzoneReportDefsReasonSexualOther
428 }
429 "tools.ozone.report.defs#reasonChildSafetyCSAM" => {
430 Self::ToolsOzoneReportDefsReasonChildSafetyCsam
431 }
432 "tools.ozone.report.defs#reasonChildSafetyGroom" => {
433 Self::ToolsOzoneReportDefsReasonChildSafetyGroom
434 }
435 "tools.ozone.report.defs#reasonChildSafetyPrivacy" => {
436 Self::ToolsOzoneReportDefsReasonChildSafetyPrivacy
437 }
438 "tools.ozone.report.defs#reasonChildSafetyHarassment" => {
439 Self::ToolsOzoneReportDefsReasonChildSafetyHarassment
440 }
441 "tools.ozone.report.defs#reasonChildSafetyOther" => {
442 Self::ToolsOzoneReportDefsReasonChildSafetyOther
443 }
444 "tools.ozone.report.defs#reasonHarassmentTroll" => {
445 Self::ToolsOzoneReportDefsReasonHarassmentTroll
446 }
447 "tools.ozone.report.defs#reasonHarassmentTargeted" => {
448 Self::ToolsOzoneReportDefsReasonHarassmentTargeted
449 }
450 "tools.ozone.report.defs#reasonHarassmentHateSpeech" => {
451 Self::ToolsOzoneReportDefsReasonHarassmentHateSpeech
452 }
453 "tools.ozone.report.defs#reasonHarassmentDoxxing" => {
454 Self::ToolsOzoneReportDefsReasonHarassmentDoxxing
455 }
456 "tools.ozone.report.defs#reasonHarassmentOther" => {
457 Self::ToolsOzoneReportDefsReasonHarassmentOther
458 }
459 "tools.ozone.report.defs#reasonMisleadingBot" => {
460 Self::ToolsOzoneReportDefsReasonMisleadingBot
461 }
462 "tools.ozone.report.defs#reasonMisleadingImpersonation" => {
463 Self::ToolsOzoneReportDefsReasonMisleadingImpersonation
464 }
465 "tools.ozone.report.defs#reasonMisleadingSpam" => {
466 Self::ToolsOzoneReportDefsReasonMisleadingSpam
467 }
468 "tools.ozone.report.defs#reasonMisleadingScam" => {
469 Self::ToolsOzoneReportDefsReasonMisleadingScam
470 }
471 "tools.ozone.report.defs#reasonMisleadingElections" => {
472 Self::ToolsOzoneReportDefsReasonMisleadingElections
473 }
474 "tools.ozone.report.defs#reasonMisleadingOther" => {
475 Self::ToolsOzoneReportDefsReasonMisleadingOther
476 }
477 "tools.ozone.report.defs#reasonRuleSiteSecurity" => {
478 Self::ToolsOzoneReportDefsReasonRuleSiteSecurity
479 }
480 "tools.ozone.report.defs#reasonRuleProhibitedSales" => {
481 Self::ToolsOzoneReportDefsReasonRuleProhibitedSales
482 }
483 "tools.ozone.report.defs#reasonRuleBanEvasion" => {
484 Self::ToolsOzoneReportDefsReasonRuleBanEvasion
485 }
486 "tools.ozone.report.defs#reasonRuleOther" => {
487 Self::ToolsOzoneReportDefsReasonRuleOther
488 }
489 "tools.ozone.report.defs#reasonSelfHarmContent" => {
490 Self::ToolsOzoneReportDefsReasonSelfHarmContent
491 }
492 "tools.ozone.report.defs#reasonSelfHarmED" => {
493 Self::ToolsOzoneReportDefsReasonSelfHarmEd
494 }
495 "tools.ozone.report.defs#reasonSelfHarmStunts" => {
496 Self::ToolsOzoneReportDefsReasonSelfHarmStunts
497 }
498 "tools.ozone.report.defs#reasonSelfHarmSubstances" => {
499 Self::ToolsOzoneReportDefsReasonSelfHarmSubstances
500 }
501 "tools.ozone.report.defs#reasonSelfHarmOther" => {
502 Self::ToolsOzoneReportDefsReasonSelfHarmOther
503 }
504 _ => Self::Other(jacquard_common::CowStr::from(s)),
505 }
506 }
507}
508
509impl<'a> AsRef<str> for ReasonType<'a> {
510 fn as_ref(&self) -> &str {
511 self.as_str()
512 }
513}
514
515impl<'a> serde::Serialize for ReasonType<'a> {
516 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
517 where
518 S: serde::Serializer,
519 {
520 serializer.serialize_str(self.as_str())
521 }
522}
523
524impl<'de, 'a> serde::Deserialize<'de> for ReasonType<'a>
525where
526 'de: 'a,
527{
528 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
529 where
530 D: serde::Deserializer<'de>,
531 {
532 let s = <&'de str>::deserialize(deserializer)?;
533 Ok(Self::from(s))
534 }
535}
536
537impl jacquard_common::IntoStatic for ReasonType<'_> {
538 type Output = ReasonType<'static>;
539 fn into_static(self) -> Self::Output {
540 match self {
541 ReasonType::ComAtprotoModerationDefsReasonSpam => {
542 ReasonType::ComAtprotoModerationDefsReasonSpam
543 }
544 ReasonType::ComAtprotoModerationDefsReasonViolation => {
545 ReasonType::ComAtprotoModerationDefsReasonViolation
546 }
547 ReasonType::ComAtprotoModerationDefsReasonMisleading => {
548 ReasonType::ComAtprotoModerationDefsReasonMisleading
549 }
550 ReasonType::ComAtprotoModerationDefsReasonSexual => {
551 ReasonType::ComAtprotoModerationDefsReasonSexual
552 }
553 ReasonType::ComAtprotoModerationDefsReasonRude => {
554 ReasonType::ComAtprotoModerationDefsReasonRude
555 }
556 ReasonType::ComAtprotoModerationDefsReasonOther => {
557 ReasonType::ComAtprotoModerationDefsReasonOther
558 }
559 ReasonType::ComAtprotoModerationDefsReasonAppeal => {
560 ReasonType::ComAtprotoModerationDefsReasonAppeal
561 }
562 ReasonType::ToolsOzoneReportDefsReasonAppeal => {
563 ReasonType::ToolsOzoneReportDefsReasonAppeal
564 }
565 ReasonType::ToolsOzoneReportDefsReasonOther => {
566 ReasonType::ToolsOzoneReportDefsReasonOther
567 }
568 ReasonType::ToolsOzoneReportDefsReasonViolenceAnimal => {
569 ReasonType::ToolsOzoneReportDefsReasonViolenceAnimal
570 }
571 ReasonType::ToolsOzoneReportDefsReasonViolenceThreats => {
572 ReasonType::ToolsOzoneReportDefsReasonViolenceThreats
573 }
574 ReasonType::ToolsOzoneReportDefsReasonViolenceGraphicContent => {
575 ReasonType::ToolsOzoneReportDefsReasonViolenceGraphicContent
576 }
577 ReasonType::ToolsOzoneReportDefsReasonViolenceGlorification => {
578 ReasonType::ToolsOzoneReportDefsReasonViolenceGlorification
579 }
580 ReasonType::ToolsOzoneReportDefsReasonViolenceExtremistContent => {
581 ReasonType::ToolsOzoneReportDefsReasonViolenceExtremistContent
582 }
583 ReasonType::ToolsOzoneReportDefsReasonViolenceTrafficking => {
584 ReasonType::ToolsOzoneReportDefsReasonViolenceTrafficking
585 }
586 ReasonType::ToolsOzoneReportDefsReasonViolenceOther => {
587 ReasonType::ToolsOzoneReportDefsReasonViolenceOther
588 }
589 ReasonType::ToolsOzoneReportDefsReasonSexualAbuseContent => {
590 ReasonType::ToolsOzoneReportDefsReasonSexualAbuseContent
591 }
592 ReasonType::ToolsOzoneReportDefsReasonSexualNcii => {
593 ReasonType::ToolsOzoneReportDefsReasonSexualNcii
594 }
595 ReasonType::ToolsOzoneReportDefsReasonSexualDeepfake => {
596 ReasonType::ToolsOzoneReportDefsReasonSexualDeepfake
597 }
598 ReasonType::ToolsOzoneReportDefsReasonSexualAnimal => {
599 ReasonType::ToolsOzoneReportDefsReasonSexualAnimal
600 }
601 ReasonType::ToolsOzoneReportDefsReasonSexualUnlabeled => {
602 ReasonType::ToolsOzoneReportDefsReasonSexualUnlabeled
603 }
604 ReasonType::ToolsOzoneReportDefsReasonSexualOther => {
605 ReasonType::ToolsOzoneReportDefsReasonSexualOther
606 }
607 ReasonType::ToolsOzoneReportDefsReasonChildSafetyCsam => {
608 ReasonType::ToolsOzoneReportDefsReasonChildSafetyCsam
609 }
610 ReasonType::ToolsOzoneReportDefsReasonChildSafetyGroom => {
611 ReasonType::ToolsOzoneReportDefsReasonChildSafetyGroom
612 }
613 ReasonType::ToolsOzoneReportDefsReasonChildSafetyPrivacy => {
614 ReasonType::ToolsOzoneReportDefsReasonChildSafetyPrivacy
615 }
616 ReasonType::ToolsOzoneReportDefsReasonChildSafetyHarassment => {
617 ReasonType::ToolsOzoneReportDefsReasonChildSafetyHarassment
618 }
619 ReasonType::ToolsOzoneReportDefsReasonChildSafetyOther => {
620 ReasonType::ToolsOzoneReportDefsReasonChildSafetyOther
621 }
622 ReasonType::ToolsOzoneReportDefsReasonHarassmentTroll => {
623 ReasonType::ToolsOzoneReportDefsReasonHarassmentTroll
624 }
625 ReasonType::ToolsOzoneReportDefsReasonHarassmentTargeted => {
626 ReasonType::ToolsOzoneReportDefsReasonHarassmentTargeted
627 }
628 ReasonType::ToolsOzoneReportDefsReasonHarassmentHateSpeech => {
629 ReasonType::ToolsOzoneReportDefsReasonHarassmentHateSpeech
630 }
631 ReasonType::ToolsOzoneReportDefsReasonHarassmentDoxxing => {
632 ReasonType::ToolsOzoneReportDefsReasonHarassmentDoxxing
633 }
634 ReasonType::ToolsOzoneReportDefsReasonHarassmentOther => {
635 ReasonType::ToolsOzoneReportDefsReasonHarassmentOther
636 }
637 ReasonType::ToolsOzoneReportDefsReasonMisleadingBot => {
638 ReasonType::ToolsOzoneReportDefsReasonMisleadingBot
639 }
640 ReasonType::ToolsOzoneReportDefsReasonMisleadingImpersonation => {
641 ReasonType::ToolsOzoneReportDefsReasonMisleadingImpersonation
642 }
643 ReasonType::ToolsOzoneReportDefsReasonMisleadingSpam => {
644 ReasonType::ToolsOzoneReportDefsReasonMisleadingSpam
645 }
646 ReasonType::ToolsOzoneReportDefsReasonMisleadingScam => {
647 ReasonType::ToolsOzoneReportDefsReasonMisleadingScam
648 }
649 ReasonType::ToolsOzoneReportDefsReasonMisleadingElections => {
650 ReasonType::ToolsOzoneReportDefsReasonMisleadingElections
651 }
652 ReasonType::ToolsOzoneReportDefsReasonMisleadingOther => {
653 ReasonType::ToolsOzoneReportDefsReasonMisleadingOther
654 }
655 ReasonType::ToolsOzoneReportDefsReasonRuleSiteSecurity => {
656 ReasonType::ToolsOzoneReportDefsReasonRuleSiteSecurity
657 }
658 ReasonType::ToolsOzoneReportDefsReasonRuleProhibitedSales => {
659 ReasonType::ToolsOzoneReportDefsReasonRuleProhibitedSales
660 }
661 ReasonType::ToolsOzoneReportDefsReasonRuleBanEvasion => {
662 ReasonType::ToolsOzoneReportDefsReasonRuleBanEvasion
663 }
664 ReasonType::ToolsOzoneReportDefsReasonRuleOther => {
665 ReasonType::ToolsOzoneReportDefsReasonRuleOther
666 }
667 ReasonType::ToolsOzoneReportDefsReasonSelfHarmContent => {
668 ReasonType::ToolsOzoneReportDefsReasonSelfHarmContent
669 }
670 ReasonType::ToolsOzoneReportDefsReasonSelfHarmEd => {
671 ReasonType::ToolsOzoneReportDefsReasonSelfHarmEd
672 }
673 ReasonType::ToolsOzoneReportDefsReasonSelfHarmStunts => {
674 ReasonType::ToolsOzoneReportDefsReasonSelfHarmStunts
675 }
676 ReasonType::ToolsOzoneReportDefsReasonSelfHarmSubstances => {
677 ReasonType::ToolsOzoneReportDefsReasonSelfHarmSubstances
678 }
679 ReasonType::ToolsOzoneReportDefsReasonSelfHarmOther => {
680 ReasonType::ToolsOzoneReportDefsReasonSelfHarmOther
681 }
682 ReasonType::Other(v) => ReasonType::Other(v.into_static()),
683 }
684 }
685}
686
687///Tag describing a type of subject that might be reported.
688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
689pub enum SubjectType<'a> {
690 Account,
691 Record,
692 Chat,
693 Other(jacquard_common::CowStr<'a>),
694}
695
696impl<'a> SubjectType<'a> {
697 pub fn as_str(&self) -> &str {
698 match self {
699 Self::Account => "account",
700 Self::Record => "record",
701 Self::Chat => "chat",
702 Self::Other(s) => s.as_ref(),
703 }
704 }
705}
706
707impl<'a> From<&'a str> for SubjectType<'a> {
708 fn from(s: &'a str) -> Self {
709 match s {
710 "account" => Self::Account,
711 "record" => Self::Record,
712 "chat" => Self::Chat,
713 _ => Self::Other(jacquard_common::CowStr::from(s)),
714 }
715 }
716}
717
718impl<'a> From<String> for SubjectType<'a> {
719 fn from(s: String) -> Self {
720 match s.as_str() {
721 "account" => Self::Account,
722 "record" => Self::Record,
723 "chat" => Self::Chat,
724 _ => Self::Other(jacquard_common::CowStr::from(s)),
725 }
726 }
727}
728
729impl<'a> AsRef<str> for SubjectType<'a> {
730 fn as_ref(&self) -> &str {
731 self.as_str()
732 }
733}
734
735impl<'a> serde::Serialize for SubjectType<'a> {
736 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
737 where
738 S: serde::Serializer,
739 {
740 serializer.serialize_str(self.as_str())
741 }
742}
743
744impl<'de, 'a> serde::Deserialize<'de> for SubjectType<'a>
745where
746 'de: 'a,
747{
748 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
749 where
750 D: serde::Deserializer<'de>,
751 {
752 let s = <&'de str>::deserialize(deserializer)?;
753 Ok(Self::from(s))
754 }
755}
756
757impl jacquard_common::IntoStatic for SubjectType<'_> {
758 type Output = SubjectType<'static>;
759 fn into_static(self) -> Self::Output {
760 match self {
761 SubjectType::Account => SubjectType::Account,
762 SubjectType::Record => SubjectType::Record,
763 SubjectType::Chat => SubjectType::Chat,
764 SubjectType::Other(v) => SubjectType::Other(v.into_static()),
765 }
766 }
767}