jacquard_api/tools_ozone/set/
query_sets.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: tools.ozone.set.querySets
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 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    ///(default: 50, min: 1, max: 100)
23    #[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    ///(default: "name")
29    #[serde(skip_serializing_if = "std::option::Option::is_none")]
30    #[serde(borrow)]
31    pub sort_by: std::option::Option<jacquard_common::CowStr<'a>>,
32    ///(default: "asc")
33    #[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    /// State trait tracking which required fields have been set
47    pub trait State: sealed::Sealed {}
48    /// Empty state - all required fields are unset
49    pub struct Empty(());
50    impl sealed::Sealed for Empty {}
51    impl State for Empty {}
52    /// Marker types for field names
53    #[allow(non_camel_case_types)]
54    pub mod members {}
55}
56
57/// Builder for constructing an instance of this type
58pub 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    /// Create a new builder for this type
72    pub fn new() -> QuerySetsBuilder<'a, query_sets_state::Empty> {
73        QuerySetsBuilder::new()
74    }
75}
76
77impl<'a> QuerySetsBuilder<'a, query_sets_state::Empty> {
78    /// Create a new builder with all fields unset
79    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    /// Set the `cursor` field (optional)
90    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    /// Set the `cursor` field to an Option value (optional)
98    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    /// Set the `limit` field (optional)
106    pub fn limit(mut self, value: impl Into<Option<i64>>) -> Self {
107        self.__unsafe_private_named.1 = value.into();
108        self
109    }
110    /// Set the `limit` field to an Option value (optional)
111    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    /// Set the `namePrefix` field (optional)
119    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    /// Set the `namePrefix` field to an Option value (optional)
127    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    /// Set the `sortBy` field (optional)
138    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    /// Set the `sortBy` field to an Option value (optional)
146    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    /// Set the `sortDirection` field (optional)
154    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    /// Set the `sortDirection` field to an Option value (optional)
162    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    /// Build the final struct
176    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
206/// Response type for
207///tools.ozone.set.querySets
208pub 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
222/// Endpoint type for
223///tools.ozone.set.querySets
224pub 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}