clientapi_pve/models/
pve_dev_config.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct PveDevConfig {
16
17 #[serde(rename = "deny-write", skip_serializing_if = "Option::is_none")]
19 pub deny_write: Option<models::PveBoolean>,
20
21 #[serde(rename = "gid", skip_serializing_if = "Option::is_none")]
23 pub gid: Option<i64>,
24
25 #[serde(rename = "mode", skip_serializing_if = "Option::is_none")]
27 pub mode: Option<String>,
28
29 #[serde(rename = "path", skip_serializing_if = "Option::is_none")]
31 pub path: Option<String>,
32
33 #[serde(rename = "uid", skip_serializing_if = "Option::is_none")]
35 pub uid: Option<i64>,
36
37
38}
39
40impl PveDevConfig {
41 pub fn new() -> PveDevConfig {
42 PveDevConfig {
43
44 deny_write: None,
45
46 gid: None,
47
48 mode: None,
49
50 path: None,
51
52 uid: None,
53
54 }
55 }
56}
57
58
59impl PveDevConfig {
60 pub fn to_shorthand(&self) -> String {
68 let mut parts: Vec<String> = Vec::new();
69
70
71 if let Some(ref v) = self.path {
72 parts.push(format!("{}", v));
73 }
74
75
76
77 if let Some(ref v) = self.deny_write {
78 parts.push(format!("deny-write={}", v));
79 }
80
81
82 if let Some(ref v) = self.gid {
83 parts.push(format!("gid={}", v));
84 }
85
86
87 if let Some(ref v) = self.mode {
88 parts.push(format!("mode={}", v));
89 }
90
91
92 if let Some(ref v) = self.uid {
93 parts.push(format!("uid={}", v));
94 }
95
96 parts.join(",")
97 }
98}
99