atproto blogging
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> core::fmt::Display for ReasonType<'a> {
624 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
625 write!(f, "{}", self.as_str())
626 }
627}
628
629impl<'a> serde::Serialize for ReasonType<'a> {
630 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
631 where
632 S: serde::Serializer,
633 {
634 serializer.serialize_str(self.as_str())
635 }
636}
637
638impl<'de, 'a> serde::Deserialize<'de> for ReasonType<'a>
639where
640 'de: 'a,
641{
642 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
643 where
644 D: serde::Deserializer<'de>,
645 {
646 let s = <&'de str>::deserialize(deserializer)?;
647 Ok(Self::from(s))
648 }
649}
650
651impl jacquard_common::IntoStatic for ReasonType<'_> {
652 type Output = ReasonType<'static>;
653 fn into_static(self) -> Self::Output {
654 match self {
655 ReasonType::ComAtprotoModerationDefsReasonSpam => {
656 ReasonType::ComAtprotoModerationDefsReasonSpam
657 }
658 ReasonType::ComAtprotoModerationDefsReasonViolation => {
659 ReasonType::ComAtprotoModerationDefsReasonViolation
660 }
661 ReasonType::ComAtprotoModerationDefsReasonMisleading => {
662 ReasonType::ComAtprotoModerationDefsReasonMisleading
663 }
664 ReasonType::ComAtprotoModerationDefsReasonSexual => {
665 ReasonType::ComAtprotoModerationDefsReasonSexual
666 }
667 ReasonType::ComAtprotoModerationDefsReasonRude => {
668 ReasonType::ComAtprotoModerationDefsReasonRude
669 }
670 ReasonType::ComAtprotoModerationDefsReasonOther => {
671 ReasonType::ComAtprotoModerationDefsReasonOther
672 }
673 ReasonType::ComAtprotoModerationDefsReasonAppeal => {
674 ReasonType::ComAtprotoModerationDefsReasonAppeal
675 }
676 ReasonType::ToolsOzoneReportDefsReasonAppeal => {
677 ReasonType::ToolsOzoneReportDefsReasonAppeal
678 }
679 ReasonType::ToolsOzoneReportDefsReasonOther => {
680 ReasonType::ToolsOzoneReportDefsReasonOther
681 }
682 ReasonType::ToolsOzoneReportDefsReasonViolenceAnimal => {
683 ReasonType::ToolsOzoneReportDefsReasonViolenceAnimal
684 }
685 ReasonType::ToolsOzoneReportDefsReasonViolenceThreats => {
686 ReasonType::ToolsOzoneReportDefsReasonViolenceThreats
687 }
688 ReasonType::ToolsOzoneReportDefsReasonViolenceGraphicContent => {
689 ReasonType::ToolsOzoneReportDefsReasonViolenceGraphicContent
690 }
691 ReasonType::ToolsOzoneReportDefsReasonViolenceGlorification => {
692 ReasonType::ToolsOzoneReportDefsReasonViolenceGlorification
693 }
694 ReasonType::ToolsOzoneReportDefsReasonViolenceExtremistContent => {
695 ReasonType::ToolsOzoneReportDefsReasonViolenceExtremistContent
696 }
697 ReasonType::ToolsOzoneReportDefsReasonViolenceTrafficking => {
698 ReasonType::ToolsOzoneReportDefsReasonViolenceTrafficking
699 }
700 ReasonType::ToolsOzoneReportDefsReasonViolenceOther => {
701 ReasonType::ToolsOzoneReportDefsReasonViolenceOther
702 }
703 ReasonType::ToolsOzoneReportDefsReasonSexualAbuseContent => {
704 ReasonType::ToolsOzoneReportDefsReasonSexualAbuseContent
705 }
706 ReasonType::ToolsOzoneReportDefsReasonSexualNcii => {
707 ReasonType::ToolsOzoneReportDefsReasonSexualNcii
708 }
709 ReasonType::ToolsOzoneReportDefsReasonSexualDeepfake => {
710 ReasonType::ToolsOzoneReportDefsReasonSexualDeepfake
711 }
712 ReasonType::ToolsOzoneReportDefsReasonSexualAnimal => {
713 ReasonType::ToolsOzoneReportDefsReasonSexualAnimal
714 }
715 ReasonType::ToolsOzoneReportDefsReasonSexualUnlabeled => {
716 ReasonType::ToolsOzoneReportDefsReasonSexualUnlabeled
717 }
718 ReasonType::ToolsOzoneReportDefsReasonSexualOther => {
719 ReasonType::ToolsOzoneReportDefsReasonSexualOther
720 }
721 ReasonType::ToolsOzoneReportDefsReasonChildSafetyCsam => {
722 ReasonType::ToolsOzoneReportDefsReasonChildSafetyCsam
723 }
724 ReasonType::ToolsOzoneReportDefsReasonChildSafetyGroom => {
725 ReasonType::ToolsOzoneReportDefsReasonChildSafetyGroom
726 }
727 ReasonType::ToolsOzoneReportDefsReasonChildSafetyPrivacy => {
728 ReasonType::ToolsOzoneReportDefsReasonChildSafetyPrivacy
729 }
730 ReasonType::ToolsOzoneReportDefsReasonChildSafetyHarassment => {
731 ReasonType::ToolsOzoneReportDefsReasonChildSafetyHarassment
732 }
733 ReasonType::ToolsOzoneReportDefsReasonChildSafetyOther => {
734 ReasonType::ToolsOzoneReportDefsReasonChildSafetyOther
735 }
736 ReasonType::ToolsOzoneReportDefsReasonHarassmentTroll => {
737 ReasonType::ToolsOzoneReportDefsReasonHarassmentTroll
738 }
739 ReasonType::ToolsOzoneReportDefsReasonHarassmentTargeted => {
740 ReasonType::ToolsOzoneReportDefsReasonHarassmentTargeted
741 }
742 ReasonType::ToolsOzoneReportDefsReasonHarassmentHateSpeech => {
743 ReasonType::ToolsOzoneReportDefsReasonHarassmentHateSpeech
744 }
745 ReasonType::ToolsOzoneReportDefsReasonHarassmentDoxxing => {
746 ReasonType::ToolsOzoneReportDefsReasonHarassmentDoxxing
747 }
748 ReasonType::ToolsOzoneReportDefsReasonHarassmentOther => {
749 ReasonType::ToolsOzoneReportDefsReasonHarassmentOther
750 }
751 ReasonType::ToolsOzoneReportDefsReasonMisleadingBot => {
752 ReasonType::ToolsOzoneReportDefsReasonMisleadingBot
753 }
754 ReasonType::ToolsOzoneReportDefsReasonMisleadingImpersonation => {
755 ReasonType::ToolsOzoneReportDefsReasonMisleadingImpersonation
756 }
757 ReasonType::ToolsOzoneReportDefsReasonMisleadingSpam => {
758 ReasonType::ToolsOzoneReportDefsReasonMisleadingSpam
759 }
760 ReasonType::ToolsOzoneReportDefsReasonMisleadingScam => {
761 ReasonType::ToolsOzoneReportDefsReasonMisleadingScam
762 }
763 ReasonType::ToolsOzoneReportDefsReasonMisleadingElections => {
764 ReasonType::ToolsOzoneReportDefsReasonMisleadingElections
765 }
766 ReasonType::ToolsOzoneReportDefsReasonMisleadingOther => {
767 ReasonType::ToolsOzoneReportDefsReasonMisleadingOther
768 }
769 ReasonType::ToolsOzoneReportDefsReasonRuleSiteSecurity => {
770 ReasonType::ToolsOzoneReportDefsReasonRuleSiteSecurity
771 }
772 ReasonType::ToolsOzoneReportDefsReasonRuleProhibitedSales => {
773 ReasonType::ToolsOzoneReportDefsReasonRuleProhibitedSales
774 }
775 ReasonType::ToolsOzoneReportDefsReasonRuleBanEvasion => {
776 ReasonType::ToolsOzoneReportDefsReasonRuleBanEvasion
777 }
778 ReasonType::ToolsOzoneReportDefsReasonRuleOther => {
779 ReasonType::ToolsOzoneReportDefsReasonRuleOther
780 }
781 ReasonType::ToolsOzoneReportDefsReasonSelfHarmContent => {
782 ReasonType::ToolsOzoneReportDefsReasonSelfHarmContent
783 }
784 ReasonType::ToolsOzoneReportDefsReasonSelfHarmEd => {
785 ReasonType::ToolsOzoneReportDefsReasonSelfHarmEd
786 }
787 ReasonType::ToolsOzoneReportDefsReasonSelfHarmStunts => {
788 ReasonType::ToolsOzoneReportDefsReasonSelfHarmStunts
789 }
790 ReasonType::ToolsOzoneReportDefsReasonSelfHarmSubstances => {
791 ReasonType::ToolsOzoneReportDefsReasonSelfHarmSubstances
792 }
793 ReasonType::ToolsOzoneReportDefsReasonSelfHarmOther => {
794 ReasonType::ToolsOzoneReportDefsReasonSelfHarmOther
795 }
796 ReasonType::Other(v) => ReasonType::Other(v.into_static()),
797 }
798 }
799}
800
801/// Direct violation of server rules, laws, terms of service. Prefer new lexicon definition `tools.ozone.report.defs#reasonRuleOther`.
802#[derive(
803 serde::Serialize,
804 serde::Deserialize,
805 Debug,
806 Clone,
807 PartialEq,
808 Eq,
809 Hash,
810 jacquard_derive::IntoStatic
811)]
812pub struct ReasonViolation;
813impl std::fmt::Display for ReasonViolation {
814 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
815 write!(f, "reasonViolation")
816 }
817}
818
819/// Tag describing a type of subject that might be reported.
820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
821pub enum SubjectType<'a> {
822 Account,
823 Record,
824 Chat,
825 Other(jacquard_common::CowStr<'a>),
826}
827
828impl<'a> SubjectType<'a> {
829 pub fn as_str(&self) -> &str {
830 match self {
831 Self::Account => "account",
832 Self::Record => "record",
833 Self::Chat => "chat",
834 Self::Other(s) => s.as_ref(),
835 }
836 }
837}
838
839impl<'a> From<&'a str> for SubjectType<'a> {
840 fn from(s: &'a str) -> Self {
841 match s {
842 "account" => Self::Account,
843 "record" => Self::Record,
844 "chat" => Self::Chat,
845 _ => Self::Other(jacquard_common::CowStr::from(s)),
846 }
847 }
848}
849
850impl<'a> From<String> for SubjectType<'a> {
851 fn from(s: String) -> Self {
852 match s.as_str() {
853 "account" => Self::Account,
854 "record" => Self::Record,
855 "chat" => Self::Chat,
856 _ => Self::Other(jacquard_common::CowStr::from(s)),
857 }
858 }
859}
860
861impl<'a> AsRef<str> for SubjectType<'a> {
862 fn as_ref(&self) -> &str {
863 self.as_str()
864 }
865}
866
867impl<'a> core::fmt::Display for SubjectType<'a> {
868 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
869 write!(f, "{}", self.as_str())
870 }
871}
872
873impl<'a> serde::Serialize for SubjectType<'a> {
874 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
875 where
876 S: serde::Serializer,
877 {
878 serializer.serialize_str(self.as_str())
879 }
880}
881
882impl<'de, 'a> serde::Deserialize<'de> for SubjectType<'a>
883where
884 'de: 'a,
885{
886 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
887 where
888 D: serde::Deserializer<'de>,
889 {
890 let s = <&'de str>::deserialize(deserializer)?;
891 Ok(Self::from(s))
892 }
893}
894
895impl jacquard_common::IntoStatic for SubjectType<'_> {
896 type Output = SubjectType<'static>;
897 fn into_static(self) -> Self::Output {
898 match self {
899 SubjectType::Account => SubjectType::Account,
900 SubjectType::Record => SubjectType::Record,
901 SubjectType::Chat => SubjectType::Chat,
902 SubjectType::Other(v) => SubjectType::Other(v.into_static()),
903 }
904 }
905}