A better Rust ATProto crate
at oauth 12 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: tools.ozone.safelink.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 add_rule; 9pub mod query_events; 10pub mod query_rules; 11pub mod remove_rule; 12pub mod update_rule; 13 14#[derive(Debug, Clone, PartialEq, Eq, Hash)] 15pub enum ActionType<'a> { 16 Block, 17 Warn, 18 Whitelist, 19 Other(jacquard_common::CowStr<'a>), 20} 21 22impl<'a> ActionType<'a> { 23 pub fn as_str(&self) -> &str { 24 match self { 25 Self::Block => "block", 26 Self::Warn => "warn", 27 Self::Whitelist => "whitelist", 28 Self::Other(s) => s.as_ref(), 29 } 30 } 31} 32 33impl<'a> From<&'a str> for ActionType<'a> { 34 fn from(s: &'a str) -> Self { 35 match s { 36 "block" => Self::Block, 37 "warn" => Self::Warn, 38 "whitelist" => Self::Whitelist, 39 _ => Self::Other(jacquard_common::CowStr::from(s)), 40 } 41 } 42} 43 44impl<'a> From<String> for ActionType<'a> { 45 fn from(s: String) -> Self { 46 match s.as_str() { 47 "block" => Self::Block, 48 "warn" => Self::Warn, 49 "whitelist" => Self::Whitelist, 50 _ => Self::Other(jacquard_common::CowStr::from(s)), 51 } 52 } 53} 54 55impl<'a> AsRef<str> for ActionType<'a> { 56 fn as_ref(&self) -> &str { 57 self.as_str() 58 } 59} 60 61impl<'a> serde::Serialize for ActionType<'a> { 62 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 63 where 64 S: serde::Serializer, 65 { 66 serializer.serialize_str(self.as_str()) 67 } 68} 69 70impl<'de, 'a> serde::Deserialize<'de> for ActionType<'a> 71where 72 'de: 'a, 73{ 74 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> 75 where 76 D: serde::Deserializer<'de>, 77 { 78 let s = <&'de str>::deserialize(deserializer)?; 79 Ok(Self::from(s)) 80 } 81} 82 83impl jacquard_common::IntoStatic for ActionType<'_> { 84 type Output = ActionType<'static>; 85 fn into_static(self) -> Self::Output { 86 match self { 87 ActionType::Block => ActionType::Block, 88 ActionType::Warn => ActionType::Warn, 89 ActionType::Whitelist => ActionType::Whitelist, 90 ActionType::Other(v) => ActionType::Other(v.into_static()), 91 } 92 } 93} 94 95///An event for URL safety decisions 96#[jacquard_derive::lexicon] 97#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 98#[serde(rename_all = "camelCase")] 99pub struct Event<'a> { 100 #[serde(borrow)] 101 pub action: crate::tools_ozone::safelink::ActionType<'a>, 102 ///Optional comment about the decision 103 #[serde(skip_serializing_if = "std::option::Option::is_none")] 104 #[serde(borrow)] 105 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 106 pub created_at: jacquard_common::types::string::Datetime, 107 ///DID of the user who created this rule 108 #[serde(borrow)] 109 pub created_by: jacquard_common::types::string::Did<'a>, 110 #[serde(borrow)] 111 pub event_type: crate::tools_ozone::safelink::EventType<'a>, 112 ///Auto-incrementing row ID 113 pub id: i64, 114 #[serde(borrow)] 115 pub pattern: crate::tools_ozone::safelink::PatternType<'a>, 116 #[serde(borrow)] 117 pub reason: crate::tools_ozone::safelink::ReasonType<'a>, 118 ///The URL that this rule applies to 119 #[serde(borrow)] 120 pub url: jacquard_common::CowStr<'a>, 121} 122 123impl jacquard_common::IntoStatic for Event<'_> { 124 type Output = Event<'static>; 125 fn into_static(self) -> Self::Output { 126 Event { 127 action: self.action.into_static(), 128 comment: self.comment.into_static(), 129 created_at: self.created_at.into_static(), 130 created_by: self.created_by.into_static(), 131 event_type: self.event_type.into_static(), 132 id: self.id.into_static(), 133 pattern: self.pattern.into_static(), 134 reason: self.reason.into_static(), 135 url: self.url.into_static(), 136 extra_data: self.extra_data.into_static(), 137 } 138 } 139} 140 141#[derive(Debug, Clone, PartialEq, Eq, Hash)] 142pub enum EventType<'a> { 143 AddRule, 144 UpdateRule, 145 RemoveRule, 146 Other(jacquard_common::CowStr<'a>), 147} 148 149impl<'a> EventType<'a> { 150 pub fn as_str(&self) -> &str { 151 match self { 152 Self::AddRule => "addRule", 153 Self::UpdateRule => "updateRule", 154 Self::RemoveRule => "removeRule", 155 Self::Other(s) => s.as_ref(), 156 } 157 } 158} 159 160impl<'a> From<&'a str> for EventType<'a> { 161 fn from(s: &'a str) -> Self { 162 match s { 163 "addRule" => Self::AddRule, 164 "updateRule" => Self::UpdateRule, 165 "removeRule" => Self::RemoveRule, 166 _ => Self::Other(jacquard_common::CowStr::from(s)), 167 } 168 } 169} 170 171impl<'a> From<String> for EventType<'a> { 172 fn from(s: String) -> Self { 173 match s.as_str() { 174 "addRule" => Self::AddRule, 175 "updateRule" => Self::UpdateRule, 176 "removeRule" => Self::RemoveRule, 177 _ => Self::Other(jacquard_common::CowStr::from(s)), 178 } 179 } 180} 181 182impl<'a> AsRef<str> for EventType<'a> { 183 fn as_ref(&self) -> &str { 184 self.as_str() 185 } 186} 187 188impl<'a> serde::Serialize for EventType<'a> { 189 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 190 where 191 S: serde::Serializer, 192 { 193 serializer.serialize_str(self.as_str()) 194 } 195} 196 197impl<'de, 'a> serde::Deserialize<'de> for EventType<'a> 198where 199 'de: 'a, 200{ 201 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> 202 where 203 D: serde::Deserializer<'de>, 204 { 205 let s = <&'de str>::deserialize(deserializer)?; 206 Ok(Self::from(s)) 207 } 208} 209 210impl jacquard_common::IntoStatic for EventType<'_> { 211 type Output = EventType<'static>; 212 fn into_static(self) -> Self::Output { 213 match self { 214 EventType::AddRule => EventType::AddRule, 215 EventType::UpdateRule => EventType::UpdateRule, 216 EventType::RemoveRule => EventType::RemoveRule, 217 EventType::Other(v) => EventType::Other(v.into_static()), 218 } 219 } 220} 221 222#[derive(Debug, Clone, PartialEq, Eq, Hash)] 223pub enum PatternType<'a> { 224 Domain, 225 Url, 226 Other(jacquard_common::CowStr<'a>), 227} 228 229impl<'a> PatternType<'a> { 230 pub fn as_str(&self) -> &str { 231 match self { 232 Self::Domain => "domain", 233 Self::Url => "url", 234 Self::Other(s) => s.as_ref(), 235 } 236 } 237} 238 239impl<'a> From<&'a str> for PatternType<'a> { 240 fn from(s: &'a str) -> Self { 241 match s { 242 "domain" => Self::Domain, 243 "url" => Self::Url, 244 _ => Self::Other(jacquard_common::CowStr::from(s)), 245 } 246 } 247} 248 249impl<'a> From<String> for PatternType<'a> { 250 fn from(s: String) -> Self { 251 match s.as_str() { 252 "domain" => Self::Domain, 253 "url" => Self::Url, 254 _ => Self::Other(jacquard_common::CowStr::from(s)), 255 } 256 } 257} 258 259impl<'a> AsRef<str> for PatternType<'a> { 260 fn as_ref(&self) -> &str { 261 self.as_str() 262 } 263} 264 265impl<'a> serde::Serialize for PatternType<'a> { 266 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 267 where 268 S: serde::Serializer, 269 { 270 serializer.serialize_str(self.as_str()) 271 } 272} 273 274impl<'de, 'a> serde::Deserialize<'de> for PatternType<'a> 275where 276 'de: 'a, 277{ 278 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> 279 where 280 D: serde::Deserializer<'de>, 281 { 282 let s = <&'de str>::deserialize(deserializer)?; 283 Ok(Self::from(s)) 284 } 285} 286 287impl jacquard_common::IntoStatic for PatternType<'_> { 288 type Output = PatternType<'static>; 289 fn into_static(self) -> Self::Output { 290 match self { 291 PatternType::Domain => PatternType::Domain, 292 PatternType::Url => PatternType::Url, 293 PatternType::Other(v) => PatternType::Other(v.into_static()), 294 } 295 } 296} 297 298#[derive(Debug, Clone, PartialEq, Eq, Hash)] 299pub enum ReasonType<'a> { 300 Csam, 301 Spam, 302 Phishing, 303 None, 304 Other(jacquard_common::CowStr<'a>), 305} 306 307impl<'a> ReasonType<'a> { 308 pub fn as_str(&self) -> &str { 309 match self { 310 Self::Csam => "csam", 311 Self::Spam => "spam", 312 Self::Phishing => "phishing", 313 Self::None => "none", 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 "csam" => Self::Csam, 323 "spam" => Self::Spam, 324 "phishing" => Self::Phishing, 325 "none" => Self::None, 326 _ => Self::Other(jacquard_common::CowStr::from(s)), 327 } 328 } 329} 330 331impl<'a> From<String> for ReasonType<'a> { 332 fn from(s: String) -> Self { 333 match s.as_str() { 334 "csam" => Self::Csam, 335 "spam" => Self::Spam, 336 "phishing" => Self::Phishing, 337 "none" => Self::None, 338 _ => Self::Other(jacquard_common::CowStr::from(s)), 339 } 340 } 341} 342 343impl<'a> AsRef<str> for ReasonType<'a> { 344 fn as_ref(&self) -> &str { 345 self.as_str() 346 } 347} 348 349impl<'a> serde::Serialize for ReasonType<'a> { 350 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 351 where 352 S: serde::Serializer, 353 { 354 serializer.serialize_str(self.as_str()) 355 } 356} 357 358impl<'de, 'a> serde::Deserialize<'de> for ReasonType<'a> 359where 360 'de: 'a, 361{ 362 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> 363 where 364 D: serde::Deserializer<'de>, 365 { 366 let s = <&'de str>::deserialize(deserializer)?; 367 Ok(Self::from(s)) 368 } 369} 370 371impl jacquard_common::IntoStatic for ReasonType<'_> { 372 type Output = ReasonType<'static>; 373 fn into_static(self) -> Self::Output { 374 match self { 375 ReasonType::Csam => ReasonType::Csam, 376 ReasonType::Spam => ReasonType::Spam, 377 ReasonType::Phishing => ReasonType::Phishing, 378 ReasonType::None => ReasonType::None, 379 ReasonType::Other(v) => ReasonType::Other(v.into_static()), 380 } 381 } 382} 383 384///Input for creating a URL safety rule 385#[jacquard_derive::lexicon] 386#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 387#[serde(rename_all = "camelCase")] 388pub struct UrlRule<'a> { 389 #[serde(borrow)] 390 pub action: crate::tools_ozone::safelink::ActionType<'a>, 391 ///Optional comment about the decision 392 #[serde(skip_serializing_if = "std::option::Option::is_none")] 393 #[serde(borrow)] 394 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 395 ///Timestamp when the rule was created 396 pub created_at: jacquard_common::types::string::Datetime, 397 ///DID of the user added the rule. 398 #[serde(borrow)] 399 pub created_by: jacquard_common::types::string::Did<'a>, 400 #[serde(borrow)] 401 pub pattern: crate::tools_ozone::safelink::PatternType<'a>, 402 #[serde(borrow)] 403 pub reason: crate::tools_ozone::safelink::ReasonType<'a>, 404 ///Timestamp when the rule was last updated 405 pub updated_at: jacquard_common::types::string::Datetime, 406 ///The URL or domain to apply the rule to 407 #[serde(borrow)] 408 pub url: jacquard_common::CowStr<'a>, 409} 410 411impl jacquard_common::IntoStatic for UrlRule<'_> { 412 type Output = UrlRule<'static>; 413 fn into_static(self) -> Self::Output { 414 UrlRule { 415 action: self.action.into_static(), 416 comment: self.comment.into_static(), 417 created_at: self.created_at.into_static(), 418 created_by: self.created_by.into_static(), 419 pattern: self.pattern.into_static(), 420 reason: self.reason.into_static(), 421 updated_at: self.updated_at.into_static(), 422 url: self.url.into_static(), 423 extra_data: self.extra_data.into_static(), 424 } 425 } 426}