atproto blogging
at main 227 lines 7.9 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: app.bsky.notification.putActivitySubscription 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)] 18#[serde(rename_all = "camelCase")] 19pub struct PutActivitySubscription<'a> { 20 #[serde(borrow)] 21 pub activity_subscription: crate::app_bsky::notification::ActivitySubscription<'a>, 22 #[serde(borrow)] 23 pub subject: jacquard_common::types::string::Did<'a>, 24} 25 26pub mod put_activity_subscription_state { 27 28 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset}; 29 #[allow(unused)] 30 use ::core::marker::PhantomData; 31 mod sealed { 32 pub trait Sealed {} 33 } 34 /// State trait tracking which required fields have been set 35 pub trait State: sealed::Sealed { 36 type Subject; 37 type ActivitySubscription; 38 } 39 /// Empty state - all required fields are unset 40 pub struct Empty(()); 41 impl sealed::Sealed for Empty {} 42 impl State for Empty { 43 type Subject = Unset; 44 type ActivitySubscription = Unset; 45 } 46 ///State transition - sets the `subject` field to Set 47 pub struct SetSubject<S: State = Empty>(PhantomData<fn() -> S>); 48 impl<S: State> sealed::Sealed for SetSubject<S> {} 49 impl<S: State> State for SetSubject<S> { 50 type Subject = Set<members::subject>; 51 type ActivitySubscription = S::ActivitySubscription; 52 } 53 ///State transition - sets the `activity_subscription` field to Set 54 pub struct SetActivitySubscription<S: State = Empty>(PhantomData<fn() -> S>); 55 impl<S: State> sealed::Sealed for SetActivitySubscription<S> {} 56 impl<S: State> State for SetActivitySubscription<S> { 57 type Subject = S::Subject; 58 type ActivitySubscription = Set<members::activity_subscription>; 59 } 60 /// Marker types for field names 61 #[allow(non_camel_case_types)] 62 pub mod members { 63 ///Marker type for the `subject` field 64 pub struct subject(()); 65 ///Marker type for the `activity_subscription` field 66 pub struct activity_subscription(()); 67 } 68} 69 70/// Builder for constructing an instance of this type 71pub struct PutActivitySubscriptionBuilder< 72 'a, 73 S: put_activity_subscription_state::State, 74> { 75 _phantom_state: ::core::marker::PhantomData<fn() -> S>, 76 __unsafe_private_named: ( 77 ::core::option::Option<crate::app_bsky::notification::ActivitySubscription<'a>>, 78 ::core::option::Option<jacquard_common::types::string::Did<'a>>, 79 ), 80 _phantom: ::core::marker::PhantomData<&'a ()>, 81} 82 83impl<'a> PutActivitySubscription<'a> { 84 /// Create a new builder for this type 85 pub fn new() -> PutActivitySubscriptionBuilder< 86 'a, 87 put_activity_subscription_state::Empty, 88 > { 89 PutActivitySubscriptionBuilder::new() 90 } 91} 92 93impl<'a> PutActivitySubscriptionBuilder<'a, put_activity_subscription_state::Empty> { 94 /// Create a new builder with all fields unset 95 pub fn new() -> Self { 96 PutActivitySubscriptionBuilder { 97 _phantom_state: ::core::marker::PhantomData, 98 __unsafe_private_named: (None, None), 99 _phantom: ::core::marker::PhantomData, 100 } 101 } 102} 103 104impl<'a, S> PutActivitySubscriptionBuilder<'a, S> 105where 106 S: put_activity_subscription_state::State, 107 S::ActivitySubscription: put_activity_subscription_state::IsUnset, 108{ 109 /// Set the `activitySubscription` field (required) 110 pub fn activity_subscription( 111 mut self, 112 value: impl Into<crate::app_bsky::notification::ActivitySubscription<'a>>, 113 ) -> PutActivitySubscriptionBuilder< 114 'a, 115 put_activity_subscription_state::SetActivitySubscription<S>, 116 > { 117 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into()); 118 PutActivitySubscriptionBuilder { 119 _phantom_state: ::core::marker::PhantomData, 120 __unsafe_private_named: self.__unsafe_private_named, 121 _phantom: ::core::marker::PhantomData, 122 } 123 } 124} 125 126impl<'a, S> PutActivitySubscriptionBuilder<'a, S> 127where 128 S: put_activity_subscription_state::State, 129 S::Subject: put_activity_subscription_state::IsUnset, 130{ 131 /// Set the `subject` field (required) 132 pub fn subject( 133 mut self, 134 value: impl Into<jacquard_common::types::string::Did<'a>>, 135 ) -> PutActivitySubscriptionBuilder< 136 'a, 137 put_activity_subscription_state::SetSubject<S>, 138 > { 139 self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into()); 140 PutActivitySubscriptionBuilder { 141 _phantom_state: ::core::marker::PhantomData, 142 __unsafe_private_named: self.__unsafe_private_named, 143 _phantom: ::core::marker::PhantomData, 144 } 145 } 146} 147 148impl<'a, S> PutActivitySubscriptionBuilder<'a, S> 149where 150 S: put_activity_subscription_state::State, 151 S::Subject: put_activity_subscription_state::IsSet, 152 S::ActivitySubscription: put_activity_subscription_state::IsSet, 153{ 154 /// Build the final struct 155 pub fn build(self) -> PutActivitySubscription<'a> { 156 PutActivitySubscription { 157 activity_subscription: self.__unsafe_private_named.0.unwrap(), 158 subject: self.__unsafe_private_named.1.unwrap(), 159 extra_data: Default::default(), 160 } 161 } 162 /// Build the final struct with custom extra_data 163 pub fn build_with_data( 164 self, 165 extra_data: std::collections::BTreeMap< 166 jacquard_common::smol_str::SmolStr, 167 jacquard_common::types::value::Data<'a>, 168 >, 169 ) -> PutActivitySubscription<'a> { 170 PutActivitySubscription { 171 activity_subscription: self.__unsafe_private_named.0.unwrap(), 172 subject: self.__unsafe_private_named.1.unwrap(), 173 extra_data: Some(extra_data), 174 } 175 } 176} 177 178#[jacquard_derive::lexicon] 179#[derive( 180 serde::Serialize, 181 serde::Deserialize, 182 Debug, 183 Clone, 184 PartialEq, 185 Eq, 186 jacquard_derive::IntoStatic 187)] 188#[serde(rename_all = "camelCase")] 189pub struct PutActivitySubscriptionOutput<'a> { 190 #[serde(skip_serializing_if = "std::option::Option::is_none")] 191 #[serde(borrow)] 192 pub activity_subscription: std::option::Option< 193 crate::app_bsky::notification::ActivitySubscription<'a>, 194 >, 195 #[serde(borrow)] 196 pub subject: jacquard_common::types::string::Did<'a>, 197} 198 199/// Response type for 200///app.bsky.notification.putActivitySubscription 201pub struct PutActivitySubscriptionResponse; 202impl jacquard_common::xrpc::XrpcResp for PutActivitySubscriptionResponse { 203 const NSID: &'static str = "app.bsky.notification.putActivitySubscription"; 204 const ENCODING: &'static str = "application/json"; 205 type Output<'de> = PutActivitySubscriptionOutput<'de>; 206 type Err<'de> = jacquard_common::xrpc::GenericError<'de>; 207} 208 209impl<'a> jacquard_common::xrpc::XrpcRequest for PutActivitySubscription<'a> { 210 const NSID: &'static str = "app.bsky.notification.putActivitySubscription"; 211 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 212 "application/json", 213 ); 214 type Response = PutActivitySubscriptionResponse; 215} 216 217/// Endpoint type for 218///app.bsky.notification.putActivitySubscription 219pub struct PutActivitySubscriptionRequest; 220impl jacquard_common::xrpc::XrpcEndpoint for PutActivitySubscriptionRequest { 221 const PATH: &'static str = "/xrpc/app.bsky.notification.putActivitySubscription"; 222 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 223 "application/json", 224 ); 225 type Request<'de> = PutActivitySubscription<'de>; 226 type Response = PutActivitySubscriptionResponse; 227}