A better Rust ATProto crate
at main 36 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> 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}