atproto blogging
at main 181 lines 5.5 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: tools.ozone.safelink.queryEvents 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 jacquard_derive::IntoStatic, 17 Default 18)] 19#[serde(rename_all = "camelCase")] 20pub struct QueryEvents<'a> { 21 /// Cursor for pagination 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 #[serde(borrow)] 24 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 25 /// Maximum number of results to return 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 pub limit: std::option::Option<i64>, 28 /// Filter by pattern type 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 30 #[serde(borrow)] 31 pub pattern_type: std::option::Option<jacquard_common::CowStr<'a>>, 32 /// Sort direction 33 #[serde(skip_serializing_if = "std::option::Option::is_none")] 34 #[serde(borrow)] 35 pub sort_direction: std::option::Option<QueryEventsSortDirection<'a>>, 36 /// Filter by specific URLs or domains 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 38 #[serde(borrow)] 39 pub urls: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 40} 41 42/// Sort direction 43#[derive(Debug, Clone, PartialEq, Eq, Hash)] 44pub enum QueryEventsSortDirection<'a> { 45 Asc, 46 Desc, 47 Other(jacquard_common::CowStr<'a>), 48} 49 50impl<'a> QueryEventsSortDirection<'a> { 51 pub fn as_str(&self) -> &str { 52 match self { 53 Self::Asc => "asc", 54 Self::Desc => "desc", 55 Self::Other(s) => s.as_ref(), 56 } 57 } 58} 59 60impl<'a> From<&'a str> for QueryEventsSortDirection<'a> { 61 fn from(s: &'a str) -> Self { 62 match s { 63 "asc" => Self::Asc, 64 "desc" => Self::Desc, 65 _ => Self::Other(jacquard_common::CowStr::from(s)), 66 } 67 } 68} 69 70impl<'a> From<String> for QueryEventsSortDirection<'a> { 71 fn from(s: String) -> Self { 72 match s.as_str() { 73 "asc" => Self::Asc, 74 "desc" => Self::Desc, 75 _ => Self::Other(jacquard_common::CowStr::from(s)), 76 } 77 } 78} 79 80impl<'a> core::fmt::Display for QueryEventsSortDirection<'a> { 81 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { 82 write!(f, "{}", self.as_str()) 83 } 84} 85 86impl<'a> AsRef<str> for QueryEventsSortDirection<'a> { 87 fn as_ref(&self) -> &str { 88 self.as_str() 89 } 90} 91 92impl<'a> serde::Serialize for QueryEventsSortDirection<'a> { 93 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 94 where 95 S: serde::Serializer, 96 { 97 serializer.serialize_str(self.as_str()) 98 } 99} 100 101impl<'de, 'a> serde::Deserialize<'de> for QueryEventsSortDirection<'a> 102where 103 'de: 'a, 104{ 105 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> 106 where 107 D: serde::Deserializer<'de>, 108 { 109 let s = <&'de str>::deserialize(deserializer)?; 110 Ok(Self::from(s)) 111 } 112} 113 114impl<'a> Default for QueryEventsSortDirection<'a> { 115 fn default() -> Self { 116 Self::Other(Default::default()) 117 } 118} 119 120impl jacquard_common::IntoStatic for QueryEventsSortDirection<'_> { 121 type Output = QueryEventsSortDirection<'static>; 122 fn into_static(self) -> Self::Output { 123 match self { 124 QueryEventsSortDirection::Asc => QueryEventsSortDirection::Asc, 125 QueryEventsSortDirection::Desc => QueryEventsSortDirection::Desc, 126 QueryEventsSortDirection::Other(v) => { 127 QueryEventsSortDirection::Other(v.into_static()) 128 } 129 } 130 } 131} 132 133#[jacquard_derive::lexicon] 134#[derive( 135 serde::Serialize, 136 serde::Deserialize, 137 Debug, 138 Clone, 139 PartialEq, 140 Eq, 141 jacquard_derive::IntoStatic 142)] 143#[serde(rename_all = "camelCase")] 144pub struct QueryEventsOutput<'a> { 145 /// Next cursor for pagination. Only present if there are more results. 146 #[serde(skip_serializing_if = "std::option::Option::is_none")] 147 #[serde(borrow)] 148 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 149 #[serde(borrow)] 150 pub events: Vec<crate::tools_ozone::safelink::Event<'a>>, 151} 152 153/// Response type for 154///tools.ozone.safelink.queryEvents 155pub struct QueryEventsResponse; 156impl jacquard_common::xrpc::XrpcResp for QueryEventsResponse { 157 const NSID: &'static str = "tools.ozone.safelink.queryEvents"; 158 const ENCODING: &'static str = "application/json"; 159 type Output<'de> = QueryEventsOutput<'de>; 160 type Err<'de> = jacquard_common::xrpc::GenericError<'de>; 161} 162 163impl<'a> jacquard_common::xrpc::XrpcRequest for QueryEvents<'a> { 164 const NSID: &'static str = "tools.ozone.safelink.queryEvents"; 165 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 166 "application/json", 167 ); 168 type Response = QueryEventsResponse; 169} 170 171/// Endpoint type for 172///tools.ozone.safelink.queryEvents 173pub struct QueryEventsRequest; 174impl jacquard_common::xrpc::XrpcEndpoint for QueryEventsRequest { 175 const PATH: &'static str = "/xrpc/tools.ozone.safelink.queryEvents"; 176 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 177 "application/json", 178 ); 179 type Request<'de> = QueryEvents<'de>; 180 type Response = QueryEventsResponse; 181}