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