xnode_manager_sdk/file/
models.rs1use serde::{Deserialize, Serialize};
2
3use crate::utils::Output;
4
5#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
6pub struct ReadFile {
7 pub path: String,
8}
9
10#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
11pub struct WriteFile {
12 pub path: String,
13 pub content: Vec<u8>,
14}
15
16#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
17pub struct RemoveFile {
18 pub path: String,
19}
20
21#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
22pub struct ReadDirectory {
23 pub path: String,
24}
25
26#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
27pub struct CreateDirectory {
28 pub path: String,
29 pub make_parent: bool,
30}
31
32#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
33pub struct RemoveDirectory {
34 pub path: String,
35 pub make_empty: bool,
36}
37
38#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
39pub struct GetPermissions {
40 pub path: String,
41}
42
43#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
44pub struct SetPermissions {
45 pub path: String,
46 pub permissions: Vec<Permission>,
47}
48
49#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
50pub struct File {
51 pub content: Output,
52}
53
54#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
55pub struct Directory {
56 pub directories: Vec<String>,
57 pub files: Vec<String>,
58 pub symlinks: Vec<String>,
59 pub unknown: Vec<String>,
60}
61
62#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
63pub enum Entity {
64 User(u32),
65 Group(u32),
66 Any,
67 Unknown,
68}
69
70#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
71pub struct Permission {
72 pub granted_to: Entity,
73 pub read: bool,
74 pub write: bool,
75 pub execute: bool,
76}