1use super::output_request::*;
2use cyfs_base::*;
3
4use serde_json::{Map, Value};
5
6impl JsonCodec<RootStateOutputRequestCommon> for RootStateOutputRequestCommon {
7 fn encode_json(&self) -> Map<String, Value> {
8 let mut obj = Map::new();
9
10 JsonCodecHelper::encode_option_string_field(&mut obj, "dec_id", self.dec_id.as_ref());
11 JsonCodecHelper::encode_option_string_field(&mut obj, "target_dec_id", self.target_dec_id.as_ref());
12 JsonCodecHelper::encode_option_string_field(&mut obj, "target", self.target.as_ref());
13 JsonCodecHelper::encode_number_field(&mut obj, "flags", self.flags);
14
15 obj
16 }
17
18 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<RootStateOutputRequestCommon> {
19 Ok(Self {
20 dec_id: JsonCodecHelper::decode_option_string_field(obj, "dec_id")?,
21 target_dec_id: JsonCodecHelper::decode_option_string_field(obj, "target_dec_id")?,
22 target: JsonCodecHelper::decode_option_string_field(obj, "target")?,
23 flags: JsonCodecHelper::decode_int_field(obj, "flags")?,
24 })
25 }
26}
27
28impl JsonCodec<RootStateGetCurrentRootOutputRequest> for RootStateGetCurrentRootOutputRequest {
30 fn encode_json(&self) -> Map<String, Value> {
31 let mut obj = Map::new();
32
33 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
34 JsonCodecHelper::encode_string_field(&mut obj, "root_type", &self.root_type);
35
36 obj
37 }
38
39 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<RootStateGetCurrentRootOutputRequest> {
40 Ok(Self {
41 common: JsonCodecHelper::decode_field(obj, "common")?,
42 root_type: JsonCodecHelper::decode_string_field(obj, "root_type")?,
43 })
44 }
45}
46
47impl JsonCodec<RootStateGetCurrentRootOutputResponse> for RootStateGetCurrentRootOutputResponse {
48 fn encode_json(&self) -> Map<String, Value> {
49 let mut obj = Map::new();
50
51 JsonCodecHelper::encode_string_field(&mut obj, "root", &self.root);
52 JsonCodecHelper::encode_number_field(&mut obj, "revision", self.revision);
53 JsonCodecHelper::encode_option_string_field(&mut obj, "dec_root", self.dec_root.as_ref());
54
55 obj
56 }
57
58 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<RootStateGetCurrentRootOutputResponse> {
59 Ok(Self {
60 root: JsonCodecHelper::decode_string_field(obj, "root")?,
61 revision: JsonCodecHelper::decode_int_field(obj, "revision")?,
62 dec_root: JsonCodecHelper::decode_option_string_field(obj, "dec_root")?,
63 })
64 }
65}
66
67impl JsonCodec<Self> for RootStateOpEnvAccess {
69 fn encode_json(&self) -> Map<String, Value> {
70 let mut obj = Map::new();
71
72 JsonCodecHelper::encode_string_field(&mut obj, "path", &self.path);
73 JsonCodecHelper::encode_number_field(&mut obj, "access", self.access as u8);
74
75 obj
76 }
77
78 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
79 let access: u8 = JsonCodecHelper::decode_int_field(obj, "access")?;
80
81 Ok(Self {
82 path: JsonCodecHelper::decode_string_field(obj, "path")?,
83 access: AccessPermissions::try_from(access)?,
84 })
85 }
86}
87
88impl JsonCodec<Self> for RootStateCreateOpEnvOutputRequest {
89 fn encode_json(&self) -> Map<String, Value> {
90 let mut obj = Map::new();
91
92 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
93 JsonCodecHelper::encode_string_field(&mut obj, "op_env_type", &self.op_env_type);
94 JsonCodecHelper::encode_option_field(&mut obj, "access", self.access.as_ref());
95
96 obj
97 }
98
99 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
100 Ok(Self {
101 common: JsonCodecHelper::decode_field(obj, "common")?,
102 op_env_type: JsonCodecHelper::decode_string_field(obj, "op_env_type")?,
103 access: JsonCodecHelper::decode_option_field(obj, "access")?,
104 })
105 }
106}
107
108impl JsonCodec<RootStateCreateOpEnvOutputResponse> for RootStateCreateOpEnvOutputResponse {
109 fn encode_json(&self) -> Map<String, Value> {
110 let mut obj = Map::new();
111
112 JsonCodecHelper::encode_string_field(&mut obj, "sid", &self.sid);
113
114 obj
115 }
116
117 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<RootStateCreateOpEnvOutputResponse> {
118 Ok(Self {
119 sid: JsonCodecHelper::decode_int_field(obj, "sid")?,
120 })
121 }
122}
123
124impl JsonCodec<Self> for OpEnvOutputRequestCommon {
126 fn encode_json(&self) -> Map<String, Value> {
127 let mut obj = Map::new();
128
129 JsonCodecHelper::encode_option_string_field(&mut obj, "dec_id", self.dec_id.as_ref());
130 JsonCodecHelper::encode_option_string_field(&mut obj, "target_dec_id", self.target_dec_id.as_ref());
131 JsonCodecHelper::encode_option_string_field(&mut obj, "target", self.target.as_ref());
132 JsonCodecHelper::encode_number_field(&mut obj, "flags", self.flags);
133 JsonCodecHelper::encode_string_field(&mut obj, "sid", &self.sid);
134
135 obj
136 }
137
138 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
139 Ok(Self {
140 dec_id: JsonCodecHelper::decode_option_string_field(obj, "dec_id")?,
141 target_dec_id: JsonCodecHelper::decode_option_string_field(obj, "target_dec_id")?,
142 target: JsonCodecHelper::decode_option_string_field(obj, "target")?,
143 flags: JsonCodecHelper::decode_int_field(obj, "flags")?,
144 sid: JsonCodecHelper::decode_int_field(obj, "sid")?,
145 })
146 }
147}
148
149impl JsonCodec<Self> for OpEnvLoadOutputRequest {
151 fn encode_json(&self) -> Map<String, Value> {
152 let mut obj = Map::new();
153
154 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
155 JsonCodecHelper::encode_string_field(&mut obj, "target", &self.target);
156 JsonCodecHelper::encode_option_string_field(&mut obj, "inner_path", self.inner_path.as_ref());
157
158 obj
159 }
160
161 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
162 Ok(Self {
163 common: JsonCodecHelper::decode_field(obj, "common")?,
164 target: JsonCodecHelper::decode_string_field(obj, "target")?,
165 inner_path: JsonCodecHelper::decode_option_string_field(obj, "inner_path")?,
166 })
167 }
168}
169
170impl JsonCodec<Self> for OpEnvLoadByPathOutputRequest {
172 fn encode_json(&self) -> Map<String, Value> {
173 let mut obj = Map::new();
174
175 JsonCodecHelper::encode_string_field(&mut obj, "path", &self.path);
176 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
177
178 obj
179 }
180
181 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
182 Ok(Self {
183 path: JsonCodecHelper::decode_string_field(obj, "path")?,
184 common: JsonCodecHelper::decode_field(obj, "common")?,
185 })
186 }
187}
188
189impl JsonCodec<Self> for OpEnvCreateNewOutputRequest {
191 fn encode_json(&self) -> Map<String, Value> {
192 let mut obj = Map::new();
193
194 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
195 JsonCodecHelper::encode_option_string_field(&mut obj, "path", self.path.as_ref());
196 JsonCodecHelper::encode_option_string_field(&mut obj, "key", self.key.as_ref());
197 JsonCodecHelper::encode_string_field(&mut obj, "content_type", &self.content_type);
198 JsonCodecHelper::encode_option_string_field(&mut obj, "owner", self.owner.as_ref());
199 JsonCodecHelper::encode_option_string_field(&mut obj, "dec", self.dec.as_ref());
200
201 obj
202 }
203
204 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
205 Ok(Self {
206 common: JsonCodecHelper::decode_field(obj, "common")?,
207 path: JsonCodecHelper::decode_option_string_field(obj, "path")?,
208 key: JsonCodecHelper::decode_option_string_field(obj, "key")?,
209 content_type: JsonCodecHelper::decode_string_field(obj, "content_type")?,
210 owner: JsonCodecHelper::decode_option_string_field(obj, "owner")?,
211 dec: JsonCodecHelper::decode_option_string_field(obj, "dec")?,
212 })
213 }
214}
215
216impl JsonCodec<Self> for OpEnvLockOutputRequest {
218 fn encode_json(&self) -> Map<String, Value> {
219 let mut obj = Map::new();
220
221 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
222 JsonCodecHelper::encode_str_array_field(&mut obj, "path_list", &self.path_list);
223 JsonCodecHelper::encode_number_field(
224 &mut obj,
225 "duration_in_millsecs",
226 self.duration_in_millsecs,
227 );
228 JsonCodecHelper::encode_bool_field(
229 &mut obj,
230 "try_lock",
231 self.try_lock,
232 );
233
234 obj
235 }
236
237 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
238 Ok(Self {
239 common: JsonCodecHelper::decode_field(obj, "common")?,
240 path_list: JsonCodecHelper::decode_str_array_field(obj, "path_list")?,
241 duration_in_millsecs: JsonCodecHelper::decode_int_field(obj, "duration_in_millsecs")?,
242 try_lock: JsonCodecHelper::decode_bool_field(obj, "try_lock")?,
243 })
244 }
245}
246
247impl JsonCodec<Self> for OpEnvCommitOutputRequest {
249 fn encode_json(&self) -> Map<String, Value> {
250 let mut obj = Map::new();
251
252 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
253 JsonCodecHelper::encode_option_string_field(&mut obj, "op_type", self.op_type.as_ref());
254
255 obj
256 }
257
258 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
259 Ok(Self {
260 common: JsonCodecHelper::decode_field(obj, "common")?,
261 op_type: JsonCodecHelper::decode_option_string_field(obj, "op_type")?,
262 })
263 }
264}
265impl JsonCodec<Self> for OpEnvCommitOutputResponse {
266 fn encode_json(&self) -> Map<String, Value> {
267 let mut obj = Map::new();
268
269 JsonCodecHelper::encode_string_field(&mut obj, "root", &self.root);
270 JsonCodecHelper::encode_string_field(&mut obj, "dec_root", &self.dec_root);
271 JsonCodecHelper::encode_number_field(&mut obj, "revision", self.revision);
272
273 obj
274 }
275
276 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
277 Ok(Self {
278 root: JsonCodecHelper::decode_string_field(obj, "root")?,
279 dec_root: JsonCodecHelper::decode_string_field(obj, "dec_root")?,
280 revision: JsonCodecHelper::decode_int_field(obj, "revision")?,
281 })
282 }
283}
284
285impl JsonCodec<Self> for OpEnvAbortOutputRequest {
287 fn encode_json(&self) -> Map<String, Value> {
288 let mut obj = Map::new();
289
290 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
291
292 obj
293 }
294
295 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
296 Ok(Self {
297 common: JsonCodecHelper::decode_field(obj, "common")?,
298 })
299 }
300}
301
302impl JsonCodec<Self> for OpEnvMetadataOutputRequest {
304 fn encode_json(&self) -> Map<String, Value> {
305 let mut obj = Map::new();
306
307 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
308 JsonCodecHelper::encode_option_string_field(&mut obj, "path", self.path.as_ref());
309 obj
310 }
311
312 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
313 Ok(Self {
314 common: JsonCodecHelper::decode_field(obj, "common")?,
315 path: JsonCodecHelper::decode_option_string_field(obj, "path")?,
316 })
317 }
318}
319impl JsonCodec<Self> for OpEnvMetadataOutputResponse {
320 fn encode_json(&self) -> Map<String, Value> {
321 let mut obj = Map::new();
322
323 JsonCodecHelper::encode_string_field(&mut obj, "content_mode", &self.content_mode);
324 JsonCodecHelper::encode_string_field(&mut obj, "content_type", &self.content_type);
325 JsonCodecHelper::encode_string_field(&mut obj, "count", &self.count);
326 JsonCodecHelper::encode_string_field(&mut obj, "size", &self.size);
327 JsonCodecHelper::encode_string_field(&mut obj, "depth", &self.depth);
328
329 obj
330 }
331
332 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
333 Ok(Self {
334 content_mode: JsonCodecHelper::decode_string_field(obj, "content_mode")?,
335 content_type: JsonCodecHelper::decode_string_field(obj, "content_type")?,
336 count: JsonCodecHelper::decode_int_field(obj, "count")?,
337 size: JsonCodecHelper::decode_int_field(obj, "size")?,
338 depth: JsonCodecHelper::decode_int_field(obj, "depth")?,
339 })
340 }
341}
342
343impl JsonCodec<Self> for OpEnvGetByKeyOutputRequest {
345 fn encode_json(&self) -> Map<String, Value> {
346 let mut obj = Map::new();
347
348 JsonCodecHelper::encode_option_string_field(&mut obj, "path", self.path.as_ref());
349 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
350 JsonCodecHelper::encode_string_field(&mut obj, "key", &self.key);
351
352 obj
353 }
354
355 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
356 Ok(Self {
357 path: JsonCodecHelper::decode_option_string_field(obj, "path")?,
358 common: JsonCodecHelper::decode_field(obj, "common")?,
359 key: JsonCodecHelper::decode_string_field(obj, "key")?,
360 })
361 }
362}
363
364impl JsonCodec<OpEnvGetByKeyOutputResponse> for OpEnvGetByKeyOutputResponse {
365 fn encode_json(&self) -> Map<String, Value> {
366 let mut obj = Map::new();
367
368 JsonCodecHelper::encode_option_string_field(&mut obj, "value", self.value.as_ref());
369
370 obj
371 }
372
373 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<OpEnvGetByKeyOutputResponse> {
374 Ok(Self {
375 value: JsonCodecHelper::decode_option_string_field(obj, "value")?,
376 })
377 }
378}
379
380impl JsonCodec<Self> for OpEnvInsertWithKeyOutputRequest {
382 fn encode_json(&self) -> Map<String, Value> {
383 let mut obj = Map::new();
384
385 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
386 JsonCodecHelper::encode_option_string_field(&mut obj, "path", self.path.as_ref());
387 JsonCodecHelper::encode_string_field(&mut obj, "key", &self.key);
388 JsonCodecHelper::encode_string_field(&mut obj, "value", &self.value);
389
390 obj
391 }
392
393 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
394 Ok(Self {
395 common: JsonCodecHelper::decode_field(obj, "common")?,
396 path: JsonCodecHelper::decode_option_string_field(obj, "path")?,
397 key: JsonCodecHelper::decode_string_field(obj, "key")?,
398 value: JsonCodecHelper::decode_string_field(obj, "value")?,
399 })
400 }
401}
402
403impl JsonCodec<Self> for OpEnvSetWithKeyOutputRequest {
405 fn encode_json(&self) -> Map<String, Value> {
406 let mut obj = Map::new();
407
408 JsonCodecHelper::encode_option_string_field(&mut obj, "path", self.path.as_ref());
409 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
410 JsonCodecHelper::encode_string_field(&mut obj, "key", &self.key);
411 JsonCodecHelper::encode_string_field(&mut obj, "value", &self.value);
412 JsonCodecHelper::encode_option_string_field(
413 &mut obj,
414 "prev_value",
415 self.prev_value.as_ref(),
416 );
417 JsonCodecHelper::encode_bool_field(&mut obj, "auto_insert", self.auto_insert);
418
419 obj
420 }
421
422 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
423 Ok(Self {
424 common: JsonCodecHelper::decode_field(obj, "common")?,
425 path: JsonCodecHelper::decode_option_string_field(obj, "path")?,
426 key: JsonCodecHelper::decode_string_field(obj, "key")?,
427 value: JsonCodecHelper::decode_string_field(obj, "value")?,
428 prev_value: JsonCodecHelper::decode_option_string_field(obj, "prev_value")?,
429 auto_insert: JsonCodecHelper::decode_bool_field(obj, "auto_insert")?,
430 })
431 }
432}
433
434impl JsonCodec<OpEnvSetWithKeyOutputResponse> for OpEnvSetWithKeyOutputResponse {
435 fn encode_json(&self) -> Map<String, Value> {
436 let mut obj = Map::new();
437
438 JsonCodecHelper::encode_option_string_field(
439 &mut obj,
440 "prev_value",
441 self.prev_value.as_ref(),
442 );
443
444 obj
445 }
446
447 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<OpEnvSetWithKeyOutputResponse> {
448 Ok(Self {
449 prev_value: JsonCodecHelper::decode_option_string_field(obj, "prev_value")?,
450 })
451 }
452}
453
454impl JsonCodec<Self> for OpEnvRemoveWithKeyOutputRequest {
456 fn encode_json(&self) -> Map<String, Value> {
457 let mut obj = Map::new();
458
459 JsonCodecHelper::encode_option_string_field(&mut obj, "path", self.path.as_ref());
460 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
461 JsonCodecHelper::encode_string_field(&mut obj, "key", &self.key);
462 JsonCodecHelper::encode_option_string_field(
463 &mut obj,
464 "prev_value",
465 self.prev_value.as_ref(),
466 );
467
468 obj
469 }
470
471 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
472 Ok(Self {
473 common: JsonCodecHelper::decode_field(obj, "common")?,
474 path: JsonCodecHelper::decode_option_string_field(obj, "path")?,
475 key: JsonCodecHelper::decode_string_field(obj, "key")?,
476 prev_value: JsonCodecHelper::decode_option_string_field(obj, "prev_value")?,
477 })
478 }
479}
480
481impl JsonCodec<OpEnvRemoveWithKeyOutputResponse> for OpEnvRemoveWithKeyOutputResponse {
482 fn encode_json(&self) -> Map<String, Value> {
483 let mut obj = Map::new();
484
485 JsonCodecHelper::encode_option_string_field(&mut obj, "value", self.value.as_ref());
486
487 obj
488 }
489
490 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<OpEnvRemoveWithKeyOutputResponse> {
491 Ok(Self {
492 value: JsonCodecHelper::decode_option_string_field(obj, "value")?,
493 })
494 }
495}
496
497impl JsonCodec<Self> for OpEnvSetOutputRequest {
499 fn encode_json(&self) -> Map<String, Value> {
500 let mut obj = Map::new();
501
502 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
503 JsonCodecHelper::encode_option_string_field(&mut obj, "path", self.path.as_ref());
504 JsonCodecHelper::encode_string_field(&mut obj, "value", &self.value);
505
506 obj
507 }
508
509 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
510 Ok(Self {
511 common: JsonCodecHelper::decode_field(obj, "common")?,
512 path: JsonCodecHelper::decode_option_string_field(obj, "path")?,
513 value: JsonCodecHelper::decode_string_field(obj, "value")?,
514 })
515 }
516}
517
518impl JsonCodec<OpEnvSetOutputResponse> for OpEnvSetOutputResponse {
519 fn encode_json(&self) -> Map<String, Value> {
520 let mut obj = Map::new();
521
522 obj.insert("result".to_owned(), Value::Bool(self.result));
523
524 obj
525 }
526
527 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<OpEnvSetOutputResponse> {
528 Ok(Self {
529 result: JsonCodecHelper::decode_bool_field(obj, "result")?,
530 })
531 }
532}
533
534impl JsonCodec<Self> for OpEnvNextOutputRequest {
536 fn encode_json(&self) -> Map<String, Value> {
537 let mut obj = Map::new();
538
539 JsonCodecHelper::encode_field(&mut obj, "common", &self.common);
540 JsonCodecHelper::encode_number_field(&mut obj, "step", self.step);
541
542 obj
543 }
544
545 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
546 Ok(Self {
547 common: JsonCodecHelper::decode_field(obj, "common")?,
548 step: JsonCodecHelper::decode_int_field(obj, "step")?,
549 })
550 }
551}
552
553
554impl JsonCodec<OpEnvNextOutputResponse> for OpEnvNextOutputResponse {
555 fn encode_json(&self) -> Map<String, Value> {
556 let mut obj = Map::new();
557
558 JsonCodecHelper::encode_as_list(&mut obj, "result", &self.list);
559
560 obj
561 }
562
563 fn decode_json(obj: &Map<String, Value>) -> BuckyResult<Self> {
564 Ok(Self {
565 list: JsonCodecHelper::decode_array_field(obj, "result")?,
566 })
567 }
568}