A better Rust ATProto crate
at main 4.2 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: tools.ozone.safelink.addRule 4// 5// This file was automatically generated from Lexicon schemas. 6// Any manual changes will be overwritten on the next regeneration. 7 8#[jacquard_derive::lexicon] 9#[derive( 10 serde::Serialize, 11 serde::Deserialize, 12 Debug, 13 Clone, 14 PartialEq, 15 Eq, 16 bon::Builder, 17 jacquard_derive::IntoStatic 18)] 19#[serde(rename_all = "camelCase")] 20#[builder(start_fn = new)] 21pub struct AddRule<'a> { 22 #[serde(borrow)] 23 pub action: crate::tools_ozone::safelink::ActionType<'a>, 24 /// Optional comment about the decision 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 #[builder(into)] 27 #[serde(borrow)] 28 pub comment: Option<jacquard_common::CowStr<'a>>, 29 /// Author DID. Only respected when using admin auth 30 #[serde(skip_serializing_if = "std::option::Option::is_none")] 31 #[builder(into)] 32 #[serde(borrow)] 33 pub created_by: Option<jacquard_common::types::string::Did<'a>>, 34 #[serde(borrow)] 35 pub pattern: crate::tools_ozone::safelink::PatternType<'a>, 36 #[serde(borrow)] 37 pub reason: crate::tools_ozone::safelink::ReasonType<'a>, 38 /// The URL or domain to apply the rule to 39 #[serde(borrow)] 40 #[builder(into)] 41 pub url: jacquard_common::CowStr<'a>, 42 #[serde(flatten)] 43 #[serde(borrow)] 44 #[builder(default)] 45 pub extra_data: ::std::collections::BTreeMap< 46 ::jacquard_common::smol_str::SmolStr, 47 ::jacquard_common::types::value::Data<'a>, 48 >, 49} 50 51#[jacquard_derive::lexicon] 52#[derive( 53 serde::Serialize, 54 serde::Deserialize, 55 Debug, 56 Clone, 57 PartialEq, 58 Eq, 59 jacquard_derive::IntoStatic 60)] 61#[serde(rename_all = "camelCase")] 62pub struct AddRuleOutput<'a> { 63 #[serde(flatten)] 64 #[serde(borrow)] 65 pub value: crate::tools_ozone::safelink::Event<'a>, 66} 67 68#[jacquard_derive::open_union] 69#[derive( 70 serde::Serialize, 71 serde::Deserialize, 72 Debug, 73 Clone, 74 PartialEq, 75 Eq, 76 thiserror::Error, 77 miette::Diagnostic, 78 jacquard_derive::IntoStatic 79)] 80#[serde(tag = "error", content = "message")] 81#[serde(bound(deserialize = "'de: 'a"))] 82pub enum AddRuleError<'a> { 83 /// The provided URL is invalid 84 #[serde(rename = "InvalidUrl")] 85 InvalidUrl(std::option::Option<String>), 86 /// A rule for this URL/domain already exists 87 #[serde(rename = "RuleAlreadyExists")] 88 RuleAlreadyExists(std::option::Option<String>), 89} 90 91impl std::fmt::Display for AddRuleError<'_> { 92 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 93 match self { 94 Self::InvalidUrl(msg) => { 95 write!(f, "InvalidUrl")?; 96 if let Some(msg) = msg { 97 write!(f, ": {}", msg)?; 98 } 99 Ok(()) 100 } 101 Self::RuleAlreadyExists(msg) => { 102 write!(f, "RuleAlreadyExists")?; 103 if let Some(msg) = msg { 104 write!(f, ": {}", msg)?; 105 } 106 Ok(()) 107 } 108 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 109 } 110 } 111} 112 113///Response type for 114///tools.ozone.safelink.addRule 115pub struct AddRuleResponse; 116impl jacquard_common::xrpc::XrpcResp for AddRuleResponse { 117 const NSID: &'static str = "tools.ozone.safelink.addRule"; 118 const ENCODING: &'static str = "application/json"; 119 type Output<'de> = AddRuleOutput<'de>; 120 type Err<'de> = AddRuleError<'de>; 121} 122 123impl<'a> jacquard_common::xrpc::XrpcRequest for AddRule<'a> { 124 const NSID: &'static str = "tools.ozone.safelink.addRule"; 125 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 126 "application/json", 127 ); 128 type Response = AddRuleResponse; 129} 130 131///Endpoint type for 132///tools.ozone.safelink.addRule 133pub struct AddRuleRequest; 134impl jacquard_common::xrpc::XrpcEndpoint for AddRuleRequest { 135 const PATH: &'static str = "/xrpc/tools.ozone.safelink.addRule"; 136 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 137 "application/json", 138 ); 139 type Request<'de> = AddRule<'de>; 140 type Response = AddRuleResponse; 141}