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