A better Rust ATProto crate
at lifetimes 5.0 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: tools.ozone.communication.updateTemplate 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 UpdateTemplate<'a> { 22 ///Content of the template, markdown supported, can contain variable placeholders. 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 #[serde(borrow)] 25 #[builder(into)] 26 pub content_markdown: std::option::Option<jacquard_common::CowStr<'a>>, 27 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 pub disabled: std::option::Option<bool>, 29 ///ID of the template to be updated. 30 #[serde(borrow)] 31 #[builder(into)] 32 pub id: jacquard_common::CowStr<'a>, 33 ///Message language. 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 35 pub lang: std::option::Option<jacquard_common::types::string::Language>, 36 ///Name of the template. 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 38 #[serde(borrow)] 39 #[builder(into)] 40 pub name: std::option::Option<jacquard_common::CowStr<'a>>, 41 ///Subject of the message, used in emails. 42 #[serde(skip_serializing_if = "std::option::Option::is_none")] 43 #[serde(borrow)] 44 #[builder(into)] 45 pub subject: std::option::Option<jacquard_common::CowStr<'a>>, 46 ///DID of the user who is updating the template. 47 #[serde(skip_serializing_if = "std::option::Option::is_none")] 48 #[serde(borrow)] 49 pub updated_by: std::option::Option<jacquard_common::types::string::Did<'a>>, 50 #[serde(flatten)] 51 #[serde(borrow)] 52 #[builder(default)] 53 pub extra_data: ::std::collections::BTreeMap< 54 ::jacquard_common::smol_str::SmolStr, 55 ::jacquard_common::types::value::Data<'a>, 56 >, 57} 58 59#[jacquard_derive::lexicon] 60#[derive( 61 serde::Serialize, 62 serde::Deserialize, 63 Debug, 64 Clone, 65 PartialEq, 66 Eq, 67 jacquard_derive::IntoStatic 68)] 69#[serde(rename_all = "camelCase")] 70pub struct UpdateTemplateOutput<'a> { 71 #[serde(flatten)] 72 #[serde(borrow)] 73 pub value: crate::tools_ozone::communication::TemplateView<'a>, 74} 75 76#[jacquard_derive::open_union] 77#[derive( 78 serde::Serialize, 79 serde::Deserialize, 80 Debug, 81 Clone, 82 PartialEq, 83 Eq, 84 thiserror::Error, 85 miette::Diagnostic 86)] 87#[serde(tag = "error", content = "message")] 88#[serde(bound(deserialize = "'de: 'a"))] 89pub enum UpdateTemplateError<'a> { 90 #[serde(rename = "DuplicateTemplateName")] 91 DuplicateTemplateName(std::option::Option<String>), 92} 93 94impl std::fmt::Display for UpdateTemplateError<'_> { 95 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 96 match self { 97 Self::DuplicateTemplateName(msg) => { 98 write!(f, "DuplicateTemplateName")?; 99 if let Some(msg) = msg { 100 write!(f, ": {}", msg)?; 101 } 102 Ok(()) 103 } 104 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 105 } 106 } 107} 108 109impl jacquard_common::IntoStatic for UpdateTemplateError<'_> { 110 type Output = UpdateTemplateError<'static>; 111 fn into_static(self) -> Self::Output { 112 match self { 113 UpdateTemplateError::DuplicateTemplateName(v) => { 114 UpdateTemplateError::DuplicateTemplateName(v.into_static()) 115 } 116 UpdateTemplateError::Unknown(v) => { 117 UpdateTemplateError::Unknown(v.into_static()) 118 } 119 } 120 } 121} 122 123///Response type for 124///tools.ozone.communication.updateTemplate 125pub struct UpdateTemplateResponse; 126impl jacquard_common::xrpc::XrpcResp for UpdateTemplateResponse { 127 const NSID: &'static str = "tools.ozone.communication.updateTemplate"; 128 const ENCODING: &'static str = "application/json"; 129 type Output<'de> = UpdateTemplateOutput<'de>; 130 type Err<'de> = UpdateTemplateError<'de>; 131} 132 133impl<'de> jacquard_common::xrpc::XrpcRequest<'de> for UpdateTemplate<'de> { 134 const NSID: &'static str = "tools.ozone.communication.updateTemplate"; 135 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 136 "application/json", 137 ); 138 type Response = UpdateTemplateResponse; 139} 140 141///Endpoint type for 142///tools.ozone.communication.updateTemplate 143pub struct UpdateTemplateRequest; 144impl jacquard_common::xrpc::XrpcEndpoint for UpdateTemplateRequest { 145 const PATH: &'static str = "/xrpc/tools.ozone.communication.updateTemplate"; 146 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 147 "application/json", 148 ); 149 type Request<'de> = UpdateTemplate<'de>; 150 type Response = UpdateTemplateResponse; 151}