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