A better Rust ATProto crate
at oauth 5.1 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: app.bsky.feed.getPostThread 4// 5// This file was automatically generated from Lexicon schemas. 6// Any manual changes will be overwritten on the next regeneration. 7 8#[derive( 9 serde::Serialize, 10 serde::Deserialize, 11 Debug, 12 Clone, 13 PartialEq, 14 Eq, 15 bon::Builder 16)] 17#[builder(start_fn = new)] 18#[serde(rename_all = "camelCase")] 19pub struct GetPostThread<'a> { 20 ///(default: 6, min: 0, max: 1000) 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 pub depth: std::option::Option<i64>, 23 ///(default: 80, min: 0, max: 1000) 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 25 pub parent_height: std::option::Option<i64>, 26 #[serde(borrow)] 27 pub uri: jacquard_common::types::string::AtUri<'a>, 28} 29 30impl jacquard_common::IntoStatic for GetPostThread<'_> { 31 type Output = GetPostThread<'static>; 32 fn into_static(self) -> Self::Output { 33 GetPostThread { 34 depth: self.depth.into_static(), 35 parent_height: self.parent_height.into_static(), 36 uri: self.uri.into_static(), 37 } 38 } 39} 40 41#[jacquard_derive::lexicon] 42#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 43#[serde(rename_all = "camelCase")] 44pub struct GetPostThreadOutput<'a> { 45 #[serde(borrow)] 46 pub thread: GetPostThreadOutputRecordThread<'a>, 47 #[serde(skip_serializing_if = "std::option::Option::is_none")] 48 #[serde(borrow)] 49 pub threadgate: std::option::Option<crate::app_bsky::feed::ThreadgateView<'a>>, 50} 51 52#[jacquard_derive::open_union] 53#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 54#[serde(tag = "$type")] 55#[serde(bound(deserialize = "'de: 'a"))] 56pub enum GetPostThreadOutputRecordThread<'a> { 57 #[serde(rename = "app.bsky.feed.defs#threadViewPost")] 58 DefsThreadViewPost(Box<crate::app_bsky::feed::ThreadViewPost<'a>>), 59 #[serde(rename = "app.bsky.feed.defs#notFoundPost")] 60 DefsNotFoundPost(Box<crate::app_bsky::feed::NotFoundPost<'a>>), 61 #[serde(rename = "app.bsky.feed.defs#blockedPost")] 62 DefsBlockedPost(Box<crate::app_bsky::feed::BlockedPost<'a>>), 63} 64 65impl jacquard_common::IntoStatic for GetPostThreadOutputRecordThread<'_> { 66 type Output = GetPostThreadOutputRecordThread<'static>; 67 fn into_static(self) -> Self::Output { 68 match self { 69 GetPostThreadOutputRecordThread::DefsThreadViewPost(v) => { 70 GetPostThreadOutputRecordThread::DefsThreadViewPost(v.into_static()) 71 } 72 GetPostThreadOutputRecordThread::DefsNotFoundPost(v) => { 73 GetPostThreadOutputRecordThread::DefsNotFoundPost(v.into_static()) 74 } 75 GetPostThreadOutputRecordThread::DefsBlockedPost(v) => { 76 GetPostThreadOutputRecordThread::DefsBlockedPost(v.into_static()) 77 } 78 GetPostThreadOutputRecordThread::Unknown(v) => { 79 GetPostThreadOutputRecordThread::Unknown(v.into_static()) 80 } 81 } 82 } 83} 84 85impl jacquard_common::IntoStatic for GetPostThreadOutput<'_> { 86 type Output = GetPostThreadOutput<'static>; 87 fn into_static(self) -> Self::Output { 88 GetPostThreadOutput { 89 thread: self.thread.into_static(), 90 threadgate: self.threadgate.into_static(), 91 extra_data: self.extra_data.into_static(), 92 } 93 } 94} 95 96#[jacquard_derive::open_union] 97#[derive( 98 serde::Serialize, 99 serde::Deserialize, 100 Debug, 101 Clone, 102 PartialEq, 103 Eq, 104 thiserror::Error, 105 miette::Diagnostic 106)] 107#[serde(tag = "error", content = "message")] 108#[serde(bound(deserialize = "'de: 'a"))] 109pub enum GetPostThreadError<'a> { 110 #[serde(rename = "NotFound")] 111 NotFound(std::option::Option<String>), 112} 113 114impl std::fmt::Display for GetPostThreadError<'_> { 115 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 116 match self { 117 Self::NotFound(msg) => { 118 write!(f, "NotFound")?; 119 if let Some(msg) = msg { 120 write!(f, ": {}", msg)?; 121 } 122 Ok(()) 123 } 124 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 125 } 126 } 127} 128 129impl jacquard_common::IntoStatic for GetPostThreadError<'_> { 130 type Output = GetPostThreadError<'static>; 131 fn into_static(self) -> Self::Output { 132 match self { 133 GetPostThreadError::NotFound(v) => { 134 GetPostThreadError::NotFound(v.into_static()) 135 } 136 GetPostThreadError::Unknown(v) => { 137 GetPostThreadError::Unknown(v.into_static()) 138 } 139 } 140 } 141} 142 143impl jacquard_common::types::xrpc::XrpcRequest for GetPostThread<'_> { 144 const NSID: &'static str = "app.bsky.feed.getPostThread"; 145 const METHOD: jacquard_common::types::xrpc::XrpcMethod = jacquard_common::types::xrpc::XrpcMethod::Query; 146 const OUTPUT_ENCODING: &'static str = "application/json"; 147 type Output<'de> = GetPostThreadOutput<'de>; 148 type Err<'de> = GetPostThreadError<'de>; 149}