jacquard_api/sh_weaver/edit/
get_edit_tree.rs1#[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
32pub 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
47pub 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 pub trait State: sealed::Sealed {
66 type Resource;
67 }
68 pub struct Empty(());
70 impl sealed::Sealed for Empty {}
71 impl State for Empty {
72 type Resource = Unset;
73 }
74 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 #[allow(non_camel_case_types)]
82 pub mod members {
83 pub struct resource(());
85 }
86}
87
88pub 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 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 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 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 pub fn build(self) -> GetEditTree<'a> {
139 GetEditTree {
140 resource: self._fields.0.unwrap(),
141 }
142 }
143}