A better Rust ATProto crate
at main 4.0 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: tools.ozone.safelink.updateRule 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 UpdateRule<'a> { 22 #[serde(borrow)] 23 pub action: crate::tools_ozone::safelink::ActionType<'a>, 24 /// Optional comment about the update 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 /// Optional DID to credit as the creator. Only respected for admin_token authentication. 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 update the rule for 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 UpdateRuleOutput<'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 UpdateRuleError<'a> { 83 /// No active rule found for this URL/domain 84 #[serde(rename = "RuleNotFound")] 85 RuleNotFound(std::option::Option<String>), 86} 87 88impl std::fmt::Display for UpdateRuleError<'_> { 89 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 90 match self { 91 Self::RuleNotFound(msg) => { 92 write!(f, "RuleNotFound")?; 93 if let Some(msg) = msg { 94 write!(f, ": {}", msg)?; 95 } 96 Ok(()) 97 } 98 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 99 } 100 } 101} 102 103///Response type for 104///tools.ozone.safelink.updateRule 105pub struct UpdateRuleResponse; 106impl jacquard_common::xrpc::XrpcResp for UpdateRuleResponse { 107 const NSID: &'static str = "tools.ozone.safelink.updateRule"; 108 const ENCODING: &'static str = "application/json"; 109 type Output<'de> = UpdateRuleOutput<'de>; 110 type Err<'de> = UpdateRuleError<'de>; 111} 112 113impl<'a> jacquard_common::xrpc::XrpcRequest for UpdateRule<'a> { 114 const NSID: &'static str = "tools.ozone.safelink.updateRule"; 115 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 116 "application/json", 117 ); 118 type Response = UpdateRuleResponse; 119} 120 121///Endpoint type for 122///tools.ozone.safelink.updateRule 123pub struct UpdateRuleRequest; 124impl jacquard_common::xrpc::XrpcEndpoint for UpdateRuleRequest { 125 const PATH: &'static str = "/xrpc/tools.ozone.safelink.updateRule"; 126 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 127 "application/json", 128 ); 129 type Request<'de> = UpdateRule<'de>; 130 type Response = UpdateRuleResponse; 131}