decthings_api/client/rpc/fs/
request.rs1use serde::Serialize;
2
3fn serialize_base64<T: AsRef<[u8]>, S: serde::Serializer>(t: &T, s: S) -> Result<S::Ok, S::Error> {
4 use base64::Engine;
5 s.serialize_str(&base64::engine::general_purpose::STANDARD.encode(t.as_ref()))
6}
7
8#[derive(Debug, Clone, Serialize)]
9#[serde(rename_all = "camelCase")]
10pub struct LookupParams<'a, T: AsRef<[u8]>> {
11 pub model_id: &'a str,
13 #[serde(skip_serializing_if = "Option::is_none")]
15 pub snapshot_id: Option<&'a str>,
16 pub parent: u64,
18 #[serde(serialize_with = "serialize_base64")]
20 pub name: T,
21}
22
23#[derive(Debug, Clone, Serialize)]
24#[serde(rename_all = "camelCase")]
25pub struct GetattrParams<'a> {
26 pub model_id: &'a str,
28 #[serde(skip_serializing_if = "Option::is_none")]
30 pub snapshot_id: Option<&'a str>,
31 pub inode: u64,
33}
34
35#[derive(Debug, Clone, Serialize)]
36#[serde(rename_all = "camelCase")]
37pub struct SetTime {
38 pub sec: i64,
39 pub nsec: i64,
40}
41
42#[derive(Debug, Clone, Serialize)]
43#[serde(rename_all = "camelCase")]
44pub struct SetattrParams<'a> {
45 pub model_id: &'a str,
47 pub inode: u64,
49 #[serde(skip_serializing_if = "Option::is_none")]
51 pub mode: Option<u32>,
52 #[serde(skip_serializing_if = "Option::is_none")]
54 pub size: Option<u64>,
55 #[serde(skip_serializing_if = "Option::is_none")]
57 pub atime: Option<SetTime>,
58 #[serde(skip_serializing_if = "Option::is_none")]
60 pub mtime: Option<SetTime>,
61}
62
63#[derive(Debug, Clone, Serialize)]
64#[serde(rename_all = "camelCase")]
65pub struct MknodParams<'a, T: AsRef<[u8]>> {
66 pub model_id: &'a str,
68 pub parent: u64,
70 #[serde(serialize_with = "serialize_base64")]
72 pub name: T,
73 pub mode: u32,
75 pub dev: u64,
77}
78
79#[derive(Debug, Clone, Serialize)]
80#[serde(rename_all = "camelCase")]
81pub struct ReadParams<'a> {
82 pub model_id: &'a str,
84 #[serde(skip_serializing_if = "Option::is_none")]
86 pub snapshot_id: Option<&'a str>,
87 pub inode: u64,
89 pub offset: u64,
91 pub count: u64,
93}
94
95#[derive(Debug, Clone, Serialize)]
96#[serde(rename_all = "camelCase")]
97pub struct WriteParams<'a, D: AsRef<[u8]>> {
98 pub model_id: &'a str,
100 pub inode: u64,
102 #[serde(skip_serializing)]
103 pub data: D,
104 pub offset: u64,
106 #[serde(skip_serializing_if = "Option::is_none")]
108 pub truncate: Option<bool>,
109}
110
111#[derive(Debug, Clone, Serialize)]
112#[serde(rename_all = "camelCase")]
113pub struct SymlinkParams<'a, T1: AsRef<[u8]>, T2: AsRef<[u8]>> {
114 pub model_id: &'a str,
116 pub parent: u64,
118 #[serde(serialize_with = "serialize_base64")]
120 pub name: T1,
121 #[serde(serialize_with = "serialize_base64")]
123 pub link: T2,
124}
125
126#[derive(Debug, Clone, Serialize)]
127#[serde(rename_all = "camelCase")]
128pub struct ReadlinkParams<'a> {
129 pub model_id: &'a str,
131 #[serde(skip_serializing_if = "Option::is_none")]
133 pub snapshot_id: Option<&'a str>,
134 pub inode: u64,
136}
137
138#[derive(Debug, Clone, Serialize)]
139#[serde(rename_all = "camelCase")]
140pub struct MkdirParams<'a, T: AsRef<[u8]>> {
141 pub model_id: &'a str,
143 pub parent: u64,
145 #[serde(serialize_with = "serialize_base64")]
147 pub name: T,
148 pub mode: u32,
150}
151
152#[derive(Debug, Clone, Serialize)]
153#[serde(rename_all = "camelCase")]
154pub struct UnlinkParams<'a, T: AsRef<[u8]>> {
155 pub model_id: &'a str,
157 pub parent: u64,
159 #[serde(serialize_with = "serialize_base64")]
161 pub name: T,
162}
163
164#[derive(Debug, Clone, Serialize)]
165#[serde(rename_all = "camelCase")]
166pub struct RmdirParams<'a, T: AsRef<[u8]>> {
167 pub model_id: &'a str,
169 pub parent: u64,
171 #[serde(serialize_with = "serialize_base64")]
173 pub name: T,
174}
175
176#[derive(Debug, Clone, Serialize)]
177#[serde(rename_all = "camelCase")]
178pub struct RenameParams<'a, T1: AsRef<[u8]>, T2: AsRef<[u8]>> {
179 pub model_id: &'a str,
181 pub parent: u64,
183 #[serde(serialize_with = "serialize_base64")]
185 pub name: T1,
186 pub newparent: u64,
188 #[serde(serialize_with = "serialize_base64")]
190 pub newname: T2,
191 #[serde(skip_serializing_if = "Option::is_none")]
193 pub flags: Option<u32>,
194}
195
196#[derive(Debug, Clone, Serialize)]
197#[serde(rename_all = "camelCase")]
198pub struct LinkParams<'a, T: AsRef<[u8]>> {
199 pub model_id: &'a str,
201 pub inode: u64,
203 pub newparent: u64,
205 #[serde(serialize_with = "serialize_base64")]
207 pub newname: T,
208}
209
210#[derive(Debug, Clone, Serialize)]
211#[serde(rename_all = "camelCase")]
212pub struct ReaddirParams<'a> {
213 pub model_id: &'a str,
215 #[serde(skip_serializing_if = "Option::is_none")]
217 pub snapshot_id: Option<&'a str>,
218 pub inode: u64,
220}
221
222#[derive(Debug, Clone, Serialize)]
223#[serde(rename_all = "camelCase")]
224pub struct RmdirAllParams<'a, T: AsRef<[u8]>> {
225 pub model_id: &'a str,
227 pub parent: u64,
229 #[serde(serialize_with = "serialize_base64")]
231 pub name: T,
232}
233
234#[derive(Debug, Clone, Serialize)]
235#[serde(rename_all = "camelCase")]
236pub struct CopyParams<'a, T: AsRef<[u8]>> {
237 pub model_id: &'a str,
239 pub inode: u64,
241 pub newparent: u64,
243 #[serde(serialize_with = "serialize_base64")]
245 pub newname: T,
246}