atproto blogging
1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: sh.weaver.graph.getActorSubscriptions
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 jacquard_derive::IntoStatic
16)]
17#[serde(rename_all = "camelCase")]
18pub struct GetActorSubscriptions<'a> {
19 #[serde(borrow)]
20 pub actor: jacquard_common::types::ident::AtIdentifier<'a>,
21 #[serde(skip_serializing_if = "std::option::Option::is_none")]
22 #[serde(borrow)]
23 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
24 ///(default: 50, min: 1, max: 100)
25 #[serde(skip_serializing_if = "std::option::Option::is_none")]
26 pub limit: std::option::Option<i64>,
27}
28
29pub mod get_actor_subscriptions_state {
30
31 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
32 #[allow(unused)]
33 use ::core::marker::PhantomData;
34 mod sealed {
35 pub trait Sealed {}
36 }
37 /// State trait tracking which required fields have been set
38 pub trait State: sealed::Sealed {
39 type Actor;
40 }
41 /// Empty state - all required fields are unset
42 pub struct Empty(());
43 impl sealed::Sealed for Empty {}
44 impl State for Empty {
45 type Actor = Unset;
46 }
47 ///State transition - sets the `actor` field to Set
48 pub struct SetActor<S: State = Empty>(PhantomData<fn() -> S>);
49 impl<S: State> sealed::Sealed for SetActor<S> {}
50 impl<S: State> State for SetActor<S> {
51 type Actor = Set<members::actor>;
52 }
53 /// Marker types for field names
54 #[allow(non_camel_case_types)]
55 pub mod members {
56 ///Marker type for the `actor` field
57 pub struct actor(());
58 }
59}
60
61/// Builder for constructing an instance of this type
62pub struct GetActorSubscriptionsBuilder<'a, S: get_actor_subscriptions_state::State> {
63 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
64 __unsafe_private_named: (
65 ::core::option::Option<jacquard_common::types::ident::AtIdentifier<'a>>,
66 ::core::option::Option<jacquard_common::CowStr<'a>>,
67 ::core::option::Option<i64>,
68 ),
69 _phantom: ::core::marker::PhantomData<&'a ()>,
70}
71
72impl<'a> GetActorSubscriptions<'a> {
73 /// Create a new builder for this type
74 pub fn new() -> GetActorSubscriptionsBuilder<
75 'a,
76 get_actor_subscriptions_state::Empty,
77 > {
78 GetActorSubscriptionsBuilder::new()
79 }
80}
81
82impl<'a> GetActorSubscriptionsBuilder<'a, get_actor_subscriptions_state::Empty> {
83 /// Create a new builder with all fields unset
84 pub fn new() -> Self {
85 GetActorSubscriptionsBuilder {
86 _phantom_state: ::core::marker::PhantomData,
87 __unsafe_private_named: (None, None, None),
88 _phantom: ::core::marker::PhantomData,
89 }
90 }
91}
92
93impl<'a, S> GetActorSubscriptionsBuilder<'a, S>
94where
95 S: get_actor_subscriptions_state::State,
96 S::Actor: get_actor_subscriptions_state::IsUnset,
97{
98 /// Set the `actor` field (required)
99 pub fn actor(
100 mut self,
101 value: impl Into<jacquard_common::types::ident::AtIdentifier<'a>>,
102 ) -> GetActorSubscriptionsBuilder<'a, get_actor_subscriptions_state::SetActor<S>> {
103 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
104 GetActorSubscriptionsBuilder {
105 _phantom_state: ::core::marker::PhantomData,
106 __unsafe_private_named: self.__unsafe_private_named,
107 _phantom: ::core::marker::PhantomData,
108 }
109 }
110}
111
112impl<'a, S: get_actor_subscriptions_state::State> GetActorSubscriptionsBuilder<'a, S> {
113 /// Set the `cursor` field (optional)
114 pub fn cursor(
115 mut self,
116 value: impl Into<Option<jacquard_common::CowStr<'a>>>,
117 ) -> Self {
118 self.__unsafe_private_named.1 = value.into();
119 self
120 }
121 /// Set the `cursor` field to an Option value (optional)
122 pub fn maybe_cursor(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
123 self.__unsafe_private_named.1 = value;
124 self
125 }
126}
127
128impl<'a, S: get_actor_subscriptions_state::State> GetActorSubscriptionsBuilder<'a, S> {
129 /// Set the `limit` field (optional)
130 pub fn limit(mut self, value: impl Into<Option<i64>>) -> Self {
131 self.__unsafe_private_named.2 = value.into();
132 self
133 }
134 /// Set the `limit` field to an Option value (optional)
135 pub fn maybe_limit(mut self, value: Option<i64>) -> Self {
136 self.__unsafe_private_named.2 = value;
137 self
138 }
139}
140
141impl<'a, S> GetActorSubscriptionsBuilder<'a, S>
142where
143 S: get_actor_subscriptions_state::State,
144 S::Actor: get_actor_subscriptions_state::IsSet,
145{
146 /// Build the final struct
147 pub fn build(self) -> GetActorSubscriptions<'a> {
148 GetActorSubscriptions {
149 actor: self.__unsafe_private_named.0.unwrap(),
150 cursor: self.__unsafe_private_named.1,
151 limit: self.__unsafe_private_named.2,
152 }
153 }
154}
155
156#[jacquard_derive::lexicon]
157#[derive(
158 serde::Serialize,
159 serde::Deserialize,
160 Debug,
161 Clone,
162 PartialEq,
163 Eq,
164 jacquard_derive::IntoStatic
165)]
166#[serde(rename_all = "camelCase")]
167pub struct GetActorSubscriptionsOutput<'a> {
168 #[serde(skip_serializing_if = "std::option::Option::is_none")]
169 #[serde(borrow)]
170 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
171 #[serde(borrow)]
172 pub subscriptions: Vec<jacquard_common::types::value::Data<'a>>,
173}
174
175/// Response type for
176///sh.weaver.graph.getActorSubscriptions
177pub struct GetActorSubscriptionsResponse;
178impl jacquard_common::xrpc::XrpcResp for GetActorSubscriptionsResponse {
179 const NSID: &'static str = "sh.weaver.graph.getActorSubscriptions";
180 const ENCODING: &'static str = "application/json";
181 type Output<'de> = GetActorSubscriptionsOutput<'de>;
182 type Err<'de> = jacquard_common::xrpc::GenericError<'de>;
183}
184
185impl<'a> jacquard_common::xrpc::XrpcRequest for GetActorSubscriptions<'a> {
186 const NSID: &'static str = "sh.weaver.graph.getActorSubscriptions";
187 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
188 type Response = GetActorSubscriptionsResponse;
189}
190
191/// Endpoint type for
192///sh.weaver.graph.getActorSubscriptions
193pub struct GetActorSubscriptionsRequest;
194impl jacquard_common::xrpc::XrpcEndpoint for GetActorSubscriptionsRequest {
195 const PATH: &'static str = "/xrpc/sh.weaver.graph.getActorSubscriptions";
196 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
197 type Request<'de> = GetActorSubscriptions<'de>;
198 type Response = GetActorSubscriptionsResponse;
199}