atproto blogging
at main 905 lines 37 kB view raw
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}