atproto blogging
at main 268 lines 8.9 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: com.atproto.admin.updateSubjectStatus 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 UpdateSubjectStatus<'a> { 20 #[serde(skip_serializing_if = "std::option::Option::is_none")] 21 #[serde(borrow)] 22 pub deactivated: std::option::Option<crate::com_atproto::admin::StatusAttr<'a>>, 23 #[serde(borrow)] 24 pub subject: UpdateSubjectStatusSubject<'a>, 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 #[serde(borrow)] 27 pub takedown: std::option::Option<crate::com_atproto::admin::StatusAttr<'a>>, 28} 29 30pub mod update_subject_status_state { 31 32 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset}; 33 #[allow(unused)] 34 use ::core::marker::PhantomData; 35 mod sealed { 36 pub trait Sealed {} 37 } 38 /// State trait tracking which required fields have been set 39 pub trait State: sealed::Sealed { 40 type Subject; 41 } 42 /// Empty state - all required fields are unset 43 pub struct Empty(()); 44 impl sealed::Sealed for Empty {} 45 impl State for Empty { 46 type Subject = Unset; 47 } 48 ///State transition - sets the `subject` field to Set 49 pub struct SetSubject<S: State = Empty>(PhantomData<fn() -> S>); 50 impl<S: State> sealed::Sealed for SetSubject<S> {} 51 impl<S: State> State for SetSubject<S> { 52 type Subject = Set<members::subject>; 53 } 54 /// Marker types for field names 55 #[allow(non_camel_case_types)] 56 pub mod members { 57 ///Marker type for the `subject` field 58 pub struct subject(()); 59 } 60} 61 62/// Builder for constructing an instance of this type 63pub struct UpdateSubjectStatusBuilder<'a, S: update_subject_status_state::State> { 64 _phantom_state: ::core::marker::PhantomData<fn() -> S>, 65 __unsafe_private_named: ( 66 ::core::option::Option<crate::com_atproto::admin::StatusAttr<'a>>, 67 ::core::option::Option<UpdateSubjectStatusSubject<'a>>, 68 ::core::option::Option<crate::com_atproto::admin::StatusAttr<'a>>, 69 ), 70 _phantom: ::core::marker::PhantomData<&'a ()>, 71} 72 73impl<'a> UpdateSubjectStatus<'a> { 74 /// Create a new builder for this type 75 pub fn new() -> UpdateSubjectStatusBuilder<'a, update_subject_status_state::Empty> { 76 UpdateSubjectStatusBuilder::new() 77 } 78} 79 80impl<'a> UpdateSubjectStatusBuilder<'a, update_subject_status_state::Empty> { 81 /// Create a new builder with all fields unset 82 pub fn new() -> Self { 83 UpdateSubjectStatusBuilder { 84 _phantom_state: ::core::marker::PhantomData, 85 __unsafe_private_named: (None, None, None), 86 _phantom: ::core::marker::PhantomData, 87 } 88 } 89} 90 91impl<'a, S: update_subject_status_state::State> UpdateSubjectStatusBuilder<'a, S> { 92 /// Set the `deactivated` field (optional) 93 pub fn deactivated( 94 mut self, 95 value: impl Into<Option<crate::com_atproto::admin::StatusAttr<'a>>>, 96 ) -> Self { 97 self.__unsafe_private_named.0 = value.into(); 98 self 99 } 100 /// Set the `deactivated` field to an Option value (optional) 101 pub fn maybe_deactivated( 102 mut self, 103 value: Option<crate::com_atproto::admin::StatusAttr<'a>>, 104 ) -> Self { 105 self.__unsafe_private_named.0 = value; 106 self 107 } 108} 109 110impl<'a, S> UpdateSubjectStatusBuilder<'a, S> 111where 112 S: update_subject_status_state::State, 113 S::Subject: update_subject_status_state::IsUnset, 114{ 115 /// Set the `subject` field (required) 116 pub fn subject( 117 mut self, 118 value: impl Into<UpdateSubjectStatusSubject<'a>>, 119 ) -> UpdateSubjectStatusBuilder<'a, update_subject_status_state::SetSubject<S>> { 120 self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into()); 121 UpdateSubjectStatusBuilder { 122 _phantom_state: ::core::marker::PhantomData, 123 __unsafe_private_named: self.__unsafe_private_named, 124 _phantom: ::core::marker::PhantomData, 125 } 126 } 127} 128 129impl<'a, S: update_subject_status_state::State> UpdateSubjectStatusBuilder<'a, S> { 130 /// Set the `takedown` field (optional) 131 pub fn takedown( 132 mut self, 133 value: impl Into<Option<crate::com_atproto::admin::StatusAttr<'a>>>, 134 ) -> Self { 135 self.__unsafe_private_named.2 = value.into(); 136 self 137 } 138 /// Set the `takedown` field to an Option value (optional) 139 pub fn maybe_takedown( 140 mut self, 141 value: Option<crate::com_atproto::admin::StatusAttr<'a>>, 142 ) -> Self { 143 self.__unsafe_private_named.2 = value; 144 self 145 } 146} 147 148impl<'a, S> UpdateSubjectStatusBuilder<'a, S> 149where 150 S: update_subject_status_state::State, 151 S::Subject: update_subject_status_state::IsSet, 152{ 153 /// Build the final struct 154 pub fn build(self) -> UpdateSubjectStatus<'a> { 155 UpdateSubjectStatus { 156 deactivated: self.__unsafe_private_named.0, 157 subject: self.__unsafe_private_named.1.unwrap(), 158 takedown: self.__unsafe_private_named.2, 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 ) -> UpdateSubjectStatus<'a> { 170 UpdateSubjectStatus { 171 deactivated: self.__unsafe_private_named.0, 172 subject: self.__unsafe_private_named.1.unwrap(), 173 takedown: self.__unsafe_private_named.2, 174 extra_data: Some(extra_data), 175 } 176 } 177} 178 179#[jacquard_derive::open_union] 180#[derive( 181 serde::Serialize, 182 serde::Deserialize, 183 Debug, 184 Clone, 185 PartialEq, 186 Eq, 187 jacquard_derive::IntoStatic 188)] 189#[serde(tag = "$type")] 190#[serde(bound(deserialize = "'de: 'a"))] 191pub enum UpdateSubjectStatusSubject<'a> { 192 #[serde(rename = "com.atproto.admin.defs#repoRef")] 193 RepoRef(Box<crate::com_atproto::admin::RepoRef<'a>>), 194 #[serde(rename = "com.atproto.repo.strongRef")] 195 StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>), 196 #[serde(rename = "com.atproto.admin.defs#repoBlobRef")] 197 RepoBlobRef(Box<crate::com_atproto::admin::RepoBlobRef<'a>>), 198} 199 200#[jacquard_derive::lexicon] 201#[derive( 202 serde::Serialize, 203 serde::Deserialize, 204 Debug, 205 Clone, 206 PartialEq, 207 Eq, 208 jacquard_derive::IntoStatic 209)] 210#[serde(rename_all = "camelCase")] 211pub struct UpdateSubjectStatusOutput<'a> { 212 #[serde(borrow)] 213 pub subject: UpdateSubjectStatusOutputSubject<'a>, 214 #[serde(skip_serializing_if = "std::option::Option::is_none")] 215 #[serde(borrow)] 216 pub takedown: std::option::Option<crate::com_atproto::admin::StatusAttr<'a>>, 217} 218 219#[jacquard_derive::open_union] 220#[derive( 221 serde::Serialize, 222 serde::Deserialize, 223 Debug, 224 Clone, 225 PartialEq, 226 Eq, 227 jacquard_derive::IntoStatic 228)] 229#[serde(tag = "$type")] 230#[serde(bound(deserialize = "'de: 'a"))] 231pub enum UpdateSubjectStatusOutputSubject<'a> { 232 #[serde(rename = "com.atproto.admin.defs#repoRef")] 233 RepoRef(Box<crate::com_atproto::admin::RepoRef<'a>>), 234 #[serde(rename = "com.atproto.repo.strongRef")] 235 StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>), 236 #[serde(rename = "com.atproto.admin.defs#repoBlobRef")] 237 RepoBlobRef(Box<crate::com_atproto::admin::RepoBlobRef<'a>>), 238} 239 240/// Response type for 241///com.atproto.admin.updateSubjectStatus 242pub struct UpdateSubjectStatusResponse; 243impl jacquard_common::xrpc::XrpcResp for UpdateSubjectStatusResponse { 244 const NSID: &'static str = "com.atproto.admin.updateSubjectStatus"; 245 const ENCODING: &'static str = "application/json"; 246 type Output<'de> = UpdateSubjectStatusOutput<'de>; 247 type Err<'de> = jacquard_common::xrpc::GenericError<'de>; 248} 249 250impl<'a> jacquard_common::xrpc::XrpcRequest for UpdateSubjectStatus<'a> { 251 const NSID: &'static str = "com.atproto.admin.updateSubjectStatus"; 252 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 253 "application/json", 254 ); 255 type Response = UpdateSubjectStatusResponse; 256} 257 258/// Endpoint type for 259///com.atproto.admin.updateSubjectStatus 260pub struct UpdateSubjectStatusRequest; 261impl jacquard_common::xrpc::XrpcEndpoint for UpdateSubjectStatusRequest { 262 const PATH: &'static str = "/xrpc/com.atproto.admin.updateSubjectStatus"; 263 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 264 "application/json", 265 ); 266 type Request<'de> = UpdateSubjectStatus<'de>; 267 type Response = UpdateSubjectStatusResponse; 268}