1pub use ppcore_def::*;
6use serde::{Deserialize, Serialize};
7
8pub const OPS_ID_LEN: usize = 4;
10
11pub const DEFAULT_REQ_ID: u64 = std::u64::MAX;
13
14pub type UUID = u64;
16
17pub type ServerAddr = String;
20
21#[derive(Debug, Default, Deserialize, Serialize)]
23pub struct Req<T: Serialize> {
24 pub uuid: u64,
26 pub cli_id: Option<CliId>,
28 pub msg: T,
30}
31
32impl<T: Serialize> Req<T> {
33 pub fn new(uuid: u64, msg: T) -> Self {
35 Self::newx(uuid, None, msg)
36 }
37
38 pub fn newx(uuid: u64, cli_id: Option<CliId>, msg: T) -> Self {
40 Req { uuid, cli_id, msg }
41 }
42}
43
44#[allow(missing_docs)]
46#[derive(
47 Clone, Copy, Debug, Deserialize, Serialize, Eq, PartialEq, Ord, PartialOrd,
48)]
49pub enum RetStatus {
50 Fail,
51 Success,
52}
53
54#[derive(Debug, Deserialize, Serialize)]
56pub struct Resp {
57 pub uuid: u64,
59 pub status: RetStatus,
61 pub msg: Vec<u8>,
63}
64
65#[allow(missing_docs)]
66#[derive(
67 Clone,
68 Debug,
69 Default,
70 Deserialize,
71 Serialize,
72 Eq,
73 PartialEq,
74 Ord,
75 PartialOrd,
76)]
77pub struct RespGetServerInfo {
78 pub vm_total: u32,
79 pub cpu_total: u32,
80 pub cpu_used: u32,
81 pub mem_total: u32,
82 pub mem_used: u32,
83 pub disk_total: u32,
84 pub disk_used: u32,
85 pub supported_list: Vec<String>,
86}
87
88pub type RespGetEnvList = Vec<EnvMeta>;
90
91#[allow(missing_docs)]
93#[derive(Debug, Default, Deserialize, Serialize)]
94pub struct ReqGetEnvInfo {
95 pub env_set: Vec<EnvId>,
96}
97
98pub type RespGetEnvInfo = Vec<EnvInfo>;
100
101#[allow(missing_docs)]
103#[derive(Clone, Debug, Default, Deserialize, Serialize)]
104pub struct ReqAddEnv {
105 pub env_id: EnvId,
106 pub vm_kind: Option<VmKind>,
107 pub os_prefix: Vec<String>,
108 pub life_time: Option<u64>,
109 pub cpu_num: Option<u32>,
110 pub mem_size: Option<u32>,
111 pub disk_size: Option<u32>,
112 pub port_set: Vec<Port>,
113 pub dup_each: Option<u8>,
114}
115
116#[allow(missing_docs)]
118#[derive(Debug, Default, Deserialize, Serialize)]
119pub struct ReqUpdateEnvLife {
120 pub env_id: EnvId,
121 pub life_time: u64,
122 pub is_fucker: bool,
123}
124
125#[allow(missing_docs)]
127#[derive(Debug, Default, Deserialize, Serialize)]
128pub struct ReqDelEnv {
129 pub env_id: EnvId,
130}
131
132#[allow(missing_docs)]
134#[derive(Debug, Default, Deserialize, Serialize)]
135pub struct ReqUpdateEnvKickVm {
136 pub env_id: EnvId,
137 pub os_prefix: Vec<String>,
138}