jacquard_api/tools_ozone/set/
query_sets.rs1#[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 QuerySets<'a> {
19 #[serde(skip_serializing_if = "std::option::Option::is_none")]
20 #[serde(borrow)]
21 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
22 #[serde(skip_serializing_if = "std::option::Option::is_none")]
24 pub limit: std::option::Option<i64>,
25 #[serde(skip_serializing_if = "std::option::Option::is_none")]
26 #[serde(borrow)]
27 pub name_prefix: std::option::Option<jacquard_common::CowStr<'a>>,
28 #[serde(skip_serializing_if = "std::option::Option::is_none")]
30 #[serde(borrow)]
31 pub sort_by: std::option::Option<jacquard_common::CowStr<'a>>,
32 #[serde(skip_serializing_if = "std::option::Option::is_none")]
34 #[serde(borrow)]
35 pub sort_direction: std::option::Option<jacquard_common::CowStr<'a>>,
36}
37
38pub mod query_sets_state {
39
40 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
41 #[allow(unused)]
42 use ::core::marker::PhantomData;
43 mod sealed {
44 pub trait Sealed {}
45 }
46 pub trait State: sealed::Sealed {}
48 pub struct Empty(());
50 impl sealed::Sealed for Empty {}
51 impl State for Empty {}
52 #[allow(non_camel_case_types)]
54 pub mod members {}
55}
56
57pub struct QuerySetsBuilder<'a, S: query_sets_state::State> {
59 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
60 __unsafe_private_named: (
61 ::core::option::Option<jacquard_common::CowStr<'a>>,
62 ::core::option::Option<i64>,
63 ::core::option::Option<jacquard_common::CowStr<'a>>,
64 ::core::option::Option<jacquard_common::CowStr<'a>>,
65 ::core::option::Option<jacquard_common::CowStr<'a>>,
66 ),
67 _phantom: ::core::marker::PhantomData<&'a ()>,
68}
69
70impl<'a> QuerySets<'a> {
71 pub fn new() -> QuerySetsBuilder<'a, query_sets_state::Empty> {
73 QuerySetsBuilder::new()
74 }
75}
76
77impl<'a> QuerySetsBuilder<'a, query_sets_state::Empty> {
78 pub fn new() -> Self {
80 QuerySetsBuilder {
81 _phantom_state: ::core::marker::PhantomData,
82 __unsafe_private_named: (None, None, None, None, None),
83 _phantom: ::core::marker::PhantomData,
84 }
85 }
86}
87
88impl<'a, S: query_sets_state::State> QuerySetsBuilder<'a, S> {
89 pub fn cursor(
91 mut self,
92 value: impl Into<Option<jacquard_common::CowStr<'a>>>,
93 ) -> Self {
94 self.__unsafe_private_named.0 = value.into();
95 self
96 }
97 pub fn maybe_cursor(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
99 self.__unsafe_private_named.0 = value;
100 self
101 }
102}
103
104impl<'a, S: query_sets_state::State> QuerySetsBuilder<'a, S> {
105 pub fn limit(mut self, value: impl Into<Option<i64>>) -> Self {
107 self.__unsafe_private_named.1 = value.into();
108 self
109 }
110 pub fn maybe_limit(mut self, value: Option<i64>) -> Self {
112 self.__unsafe_private_named.1 = value;
113 self
114 }
115}
116
117impl<'a, S: query_sets_state::State> QuerySetsBuilder<'a, S> {
118 pub fn name_prefix(
120 mut self,
121 value: impl Into<Option<jacquard_common::CowStr<'a>>>,
122 ) -> Self {
123 self.__unsafe_private_named.2 = value.into();
124 self
125 }
126 pub fn maybe_name_prefix(
128 mut self,
129 value: Option<jacquard_common::CowStr<'a>>,
130 ) -> Self {
131 self.__unsafe_private_named.2 = value;
132 self
133 }
134}
135
136impl<'a, S: query_sets_state::State> QuerySetsBuilder<'a, S> {
137 pub fn sort_by(
139 mut self,
140 value: impl Into<Option<jacquard_common::CowStr<'a>>>,
141 ) -> Self {
142 self.__unsafe_private_named.3 = value.into();
143 self
144 }
145 pub fn maybe_sort_by(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
147 self.__unsafe_private_named.3 = value;
148 self
149 }
150}
151
152impl<'a, S: query_sets_state::State> QuerySetsBuilder<'a, S> {
153 pub fn sort_direction(
155 mut self,
156 value: impl Into<Option<jacquard_common::CowStr<'a>>>,
157 ) -> Self {
158 self.__unsafe_private_named.4 = value.into();
159 self
160 }
161 pub fn maybe_sort_direction(
163 mut self,
164 value: Option<jacquard_common::CowStr<'a>>,
165 ) -> Self {
166 self.__unsafe_private_named.4 = value;
167 self
168 }
169}
170
171impl<'a, S> QuerySetsBuilder<'a, S>
172where
173 S: query_sets_state::State,
174{
175 pub fn build(self) -> QuerySets<'a> {
177 QuerySets {
178 cursor: self.__unsafe_private_named.0,
179 limit: self.__unsafe_private_named.1,
180 name_prefix: self.__unsafe_private_named.2,
181 sort_by: self.__unsafe_private_named.3,
182 sort_direction: self.__unsafe_private_named.4,
183 }
184 }
185}
186
187#[jacquard_derive::lexicon]
188#[derive(
189 serde::Serialize,
190 serde::Deserialize,
191 Debug,
192 Clone,
193 PartialEq,
194 Eq,
195 jacquard_derive::IntoStatic
196)]
197#[serde(rename_all = "camelCase")]
198pub struct QuerySetsOutput<'a> {
199 #[serde(skip_serializing_if = "std::option::Option::is_none")]
200 #[serde(borrow)]
201 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
202 #[serde(borrow)]
203 pub sets: Vec<crate::tools_ozone::set::SetView<'a>>,
204}
205
206pub struct QuerySetsResponse;
209impl jacquard_common::xrpc::XrpcResp for QuerySetsResponse {
210 const NSID: &'static str = "tools.ozone.set.querySets";
211 const ENCODING: &'static str = "application/json";
212 type Output<'de> = QuerySetsOutput<'de>;
213 type Err<'de> = jacquard_common::xrpc::GenericError<'de>;
214}
215
216impl<'a> jacquard_common::xrpc::XrpcRequest for QuerySets<'a> {
217 const NSID: &'static str = "tools.ozone.set.querySets";
218 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
219 type Response = QuerySetsResponse;
220}
221
222pub struct QuerySetsRequest;
225impl jacquard_common::xrpc::XrpcEndpoint for QuerySetsRequest {
226 const PATH: &'static str = "/xrpc/tools.ozone.set.querySets";
227 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
228 type Request<'de> = QuerySets<'de>;
229 type Response = QuerySetsResponse;
230}