A better Rust ATProto crate
at lifetimes 5.4 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: app.bsky.feed.searchPosts 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 jacquard_derive::IntoStatic 17)] 18#[builder(start_fn = new)] 19#[serde(rename_all = "camelCase")] 20pub struct SearchPosts<'a> { 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 #[serde(borrow)] 23 pub author: std::option::Option<jacquard_common::types::ident::AtIdentifier<'a>>, 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 25 #[serde(borrow)] 26 #[builder(into)] 27 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 #[serde(borrow)] 30 #[builder(into)] 31 pub domain: std::option::Option<jacquard_common::CowStr<'a>>, 32 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 pub lang: std::option::Option<jacquard_common::types::string::Language>, 34 ///(default: 25, min: 1, max: 100) 35 #[serde(skip_serializing_if = "std::option::Option::is_none")] 36 pub limit: std::option::Option<i64>, 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 38 #[serde(borrow)] 39 pub mentions: std::option::Option<jacquard_common::types::ident::AtIdentifier<'a>>, 40 #[serde(borrow)] 41 #[builder(into)] 42 pub q: jacquard_common::CowStr<'a>, 43 #[serde(skip_serializing_if = "std::option::Option::is_none")] 44 #[serde(borrow)] 45 #[builder(into)] 46 pub since: std::option::Option<jacquard_common::CowStr<'a>>, 47 ///(default: "latest") 48 #[serde(skip_serializing_if = "std::option::Option::is_none")] 49 #[serde(borrow)] 50 #[builder(into)] 51 pub sort: std::option::Option<jacquard_common::CowStr<'a>>, 52 #[serde(skip_serializing_if = "std::option::Option::is_none")] 53 #[serde(borrow)] 54 pub tag: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 55 #[serde(skip_serializing_if = "std::option::Option::is_none")] 56 #[serde(borrow)] 57 #[builder(into)] 58 pub until: std::option::Option<jacquard_common::CowStr<'a>>, 59 #[serde(skip_serializing_if = "std::option::Option::is_none")] 60 #[serde(borrow)] 61 pub url: std::option::Option<jacquard_common::types::string::Uri<'a>>, 62} 63 64#[jacquard_derive::lexicon] 65#[derive( 66 serde::Serialize, 67 serde::Deserialize, 68 Debug, 69 Clone, 70 PartialEq, 71 Eq, 72 jacquard_derive::IntoStatic 73)] 74#[serde(rename_all = "camelCase")] 75pub struct SearchPostsOutput<'a> { 76 #[serde(skip_serializing_if = "std::option::Option::is_none")] 77 #[serde(borrow)] 78 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 79 ///Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits. 80 #[serde(skip_serializing_if = "std::option::Option::is_none")] 81 pub hits_total: std::option::Option<i64>, 82 #[serde(borrow)] 83 pub posts: Vec<crate::app_bsky::feed::PostView<'a>>, 84} 85 86#[jacquard_derive::open_union] 87#[derive( 88 serde::Serialize, 89 serde::Deserialize, 90 Debug, 91 Clone, 92 PartialEq, 93 Eq, 94 thiserror::Error, 95 miette::Diagnostic 96)] 97#[serde(tag = "error", content = "message")] 98#[serde(bound(deserialize = "'de: 'a"))] 99pub enum SearchPostsError<'a> { 100 #[serde(rename = "BadQueryString")] 101 BadQueryString(std::option::Option<String>), 102} 103 104impl std::fmt::Display for SearchPostsError<'_> { 105 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 106 match self { 107 Self::BadQueryString(msg) => { 108 write!(f, "BadQueryString")?; 109 if let Some(msg) = msg { 110 write!(f, ": {}", msg)?; 111 } 112 Ok(()) 113 } 114 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 115 } 116 } 117} 118 119impl jacquard_common::IntoStatic for SearchPostsError<'_> { 120 type Output = SearchPostsError<'static>; 121 fn into_static(self) -> Self::Output { 122 match self { 123 SearchPostsError::BadQueryString(v) => { 124 SearchPostsError::BadQueryString(v.into_static()) 125 } 126 SearchPostsError::Unknown(v) => SearchPostsError::Unknown(v.into_static()), 127 } 128 } 129} 130 131///Response type for 132///app.bsky.feed.searchPosts 133pub struct SearchPostsResponse; 134impl jacquard_common::xrpc::XrpcResp for SearchPostsResponse { 135 const NSID: &'static str = "app.bsky.feed.searchPosts"; 136 const ENCODING: &'static str = "application/json"; 137 type Output<'de> = SearchPostsOutput<'de>; 138 type Err<'de> = SearchPostsError<'de>; 139} 140 141impl<'de> jacquard_common::xrpc::XrpcRequest<'de> for SearchPosts<'de> { 142 const NSID: &'static str = "app.bsky.feed.searchPosts"; 143 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query; 144 type Response = SearchPostsResponse; 145} 146 147///Endpoint type for 148///app.bsky.feed.searchPosts 149pub struct SearchPostsRequest; 150impl jacquard_common::xrpc::XrpcEndpoint for SearchPostsRequest { 151 const PATH: &'static str = "/xrpc/app.bsky.feed.searchPosts"; 152 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query; 153 type Request<'de> = SearchPosts<'de>; 154 type Response = SearchPostsResponse; 155}