Skip to main content

jacquard_api/sh_weaver/edit/
get_edit_tree.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: sh.weaver.edit.getEditTree
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8#[allow(unused_imports)]
9use core::marker::PhantomData;
10use jacquard_common::types::string::AtUri;
11use jacquard_derive::IntoStatic;
12use serde::{Serialize, Deserialize};
13use crate::sh_weaver::edit::EditTreeView;
14
15#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
16#[serde(rename_all = "camelCase")]
17pub struct GetEditTree<'a> {
18    #[serde(borrow)]
19    pub resource: AtUri<'a>,
20}
21
22
23#[jacquard_derive::lexicon]
24#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
25#[serde(rename_all = "camelCase")]
26pub struct GetEditTreeOutput<'a> {
27    #[serde(flatten)]
28    #[serde(borrow)]
29    pub value: EditTreeView<'a>,
30}
31
32/// Response type for sh.weaver.edit.getEditTree
33pub struct GetEditTreeResponse;
34impl jacquard_common::xrpc::XrpcResp for GetEditTreeResponse {
35    const NSID: &'static str = "sh.weaver.edit.getEditTree";
36    const ENCODING: &'static str = "application/json";
37    type Output<'de> = GetEditTreeOutput<'de>;
38    type Err<'de> = jacquard_common::xrpc::GenericError<'de>;
39}
40
41impl<'a> jacquard_common::xrpc::XrpcRequest for GetEditTree<'a> {
42    const NSID: &'static str = "sh.weaver.edit.getEditTree";
43    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
44    type Response = GetEditTreeResponse;
45}
46
47/// Endpoint type for sh.weaver.edit.getEditTree
48pub struct GetEditTreeRequest;
49impl jacquard_common::xrpc::XrpcEndpoint for GetEditTreeRequest {
50    const PATH: &'static str = "/xrpc/sh.weaver.edit.getEditTree";
51    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
52    type Request<'de> = GetEditTree<'de>;
53    type Response = GetEditTreeResponse;
54}
55
56pub mod get_edit_tree_state {
57
58    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
59    #[allow(unused)]
60    use ::core::marker::PhantomData;
61    mod sealed {
62        pub trait Sealed {}
63    }
64    /// State trait tracking which required fields have been set
65    pub trait State: sealed::Sealed {
66        type Resource;
67    }
68    /// Empty state - all required fields are unset
69    pub struct Empty(());
70    impl sealed::Sealed for Empty {}
71    impl State for Empty {
72        type Resource = Unset;
73    }
74    ///State transition - sets the `resource` field to Set
75    pub struct SetResource<S: State = Empty>(PhantomData<fn() -> S>);
76    impl<S: State> sealed::Sealed for SetResource<S> {}
77    impl<S: State> State for SetResource<S> {
78        type Resource = Set<members::resource>;
79    }
80    /// Marker types for field names
81    #[allow(non_camel_case_types)]
82    pub mod members {
83        ///Marker type for the `resource` field
84        pub struct resource(());
85    }
86}
87
88/// Builder for constructing an instance of this type
89pub struct GetEditTreeBuilder<'a, S: get_edit_tree_state::State> {
90    _state: PhantomData<fn() -> S>,
91    _fields: (Option<AtUri<'a>>,),
92    _lifetime: PhantomData<&'a ()>,
93}
94
95impl<'a> GetEditTree<'a> {
96    /// Create a new builder for this type
97    pub fn new() -> GetEditTreeBuilder<'a, get_edit_tree_state::Empty> {
98        GetEditTreeBuilder::new()
99    }
100}
101
102impl<'a> GetEditTreeBuilder<'a, get_edit_tree_state::Empty> {
103    /// Create a new builder with all fields unset
104    pub fn new() -> Self {
105        GetEditTreeBuilder {
106            _state: PhantomData,
107            _fields: (None,),
108            _lifetime: PhantomData,
109        }
110    }
111}
112
113impl<'a, S> GetEditTreeBuilder<'a, S>
114where
115    S: get_edit_tree_state::State,
116    S::Resource: get_edit_tree_state::IsUnset,
117{
118    /// Set the `resource` field (required)
119    pub fn resource(
120        mut self,
121        value: impl Into<AtUri<'a>>,
122    ) -> GetEditTreeBuilder<'a, get_edit_tree_state::SetResource<S>> {
123        self._fields.0 = Option::Some(value.into());
124        GetEditTreeBuilder {
125            _state: PhantomData,
126            _fields: self._fields,
127            _lifetime: PhantomData,
128        }
129    }
130}
131
132impl<'a, S> GetEditTreeBuilder<'a, S>
133where
134    S: get_edit_tree_state::State,
135    S::Resource: get_edit_tree_state::IsSet,
136{
137    /// Build the final struct
138    pub fn build(self) -> GetEditTree<'a> {
139        GetEditTree {
140            resource: self._fields.0.unwrap(),
141        }
142    }
143}