Skip to main content

veilid_remote_api/
table_db.rs

1use super::*;
2
3#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
4pub struct TableDbRequest {
5    pub db_id: u32,
6    #[serde(flatten)]
7    pub db_op: TableDbRequestOp,
8}
9
10#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
11pub struct TableDbResponse {
12    pub db_id: u32,
13    #[serde(flatten)]
14    pub db_op: TableDbResponseOp,
15}
16
17#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
18#[serde(tag = "db_op")]
19pub enum TableDbRequestOp {
20    Release,
21    GetColumnCount,
22    GetKeys {
23        col: u32,
24    },
25    Transact,
26    Store {
27        col: u32,
28        #[serde(with = "as_human_base64")]
29        #[schemars(with = "String")]
30        key: Vec<u8>,
31        #[serde(with = "as_human_base64")]
32        #[schemars(with = "String")]
33        value: Vec<u8>,
34    },
35    Load {
36        col: u32,
37        #[serde(with = "as_human_base64")]
38        #[schemars(with = "String")]
39        key: Vec<u8>,
40    },
41    Delete {
42        col: u32,
43        #[serde(with = "as_human_base64")]
44        #[schemars(with = "String")]
45        key: Vec<u8>,
46    },
47}
48#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
49#[serde(tag = "db_op")]
50pub enum TableDbResponseOp {
51    InvalidId,
52    Release,
53    GetColumnCount {
54        #[serde(flatten)]
55        result: ApiResult<u32>,
56    },
57    GetKeys {
58        #[serde(flatten)]
59        #[schemars(with = "ApiResult<Vec<String>>")]
60        result: ApiResultWithVecVecU8,
61    },
62    Transact {
63        value: u32,
64    },
65    Store {
66        #[serde(flatten)]
67        result: ApiResult<()>,
68    },
69    Load {
70        #[serde(flatten)]
71        #[schemars(with = "ApiResult<Option<String>>")]
72        result: ApiResult<Option<VecU8>>,
73    },
74    Delete {
75        #[serde(flatten)]
76        #[schemars(with = "ApiResult<Option<String>>")]
77        result: ApiResult<Option<VecU8>>,
78    },
79}
80
81//////////////////////////////////////////////////////////////////////////////////////////////////////
82
83#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
84pub struct TableDbTransactionRequest {
85    pub tx_id: u32,
86    #[serde(flatten)]
87    pub tx_op: TableDbTransactionRequestOp,
88}
89
90#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
91pub struct TableDbTransactionResponse {
92    pub tx_id: u32,
93    #[serde(flatten)]
94    pub tx_op: TableDbTransactionResponseOp,
95}
96
97#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
98#[serde(tag = "tx_op")]
99pub enum TableDbTransactionRequestOp {
100    Commit,
101    Rollback,
102    Store {
103        col: u32,
104        #[serde(with = "as_human_base64")]
105        #[schemars(with = "String")]
106        key: Vec<u8>,
107        #[serde(with = "as_human_base64")]
108        #[schemars(with = "String")]
109        value: Vec<u8>,
110    },
111    Delete {
112        col: u32,
113        #[serde(with = "as_human_base64")]
114        #[schemars(with = "String")]
115        key: Vec<u8>,
116    },
117}
118#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
119#[serde(tag = "tx_op")]
120pub enum TableDbTransactionResponseOp {
121    InvalidId,
122    Commit {
123        #[serde(flatten)]
124        result: ApiResult<()>,
125    },
126    Rollback {},
127    Store {
128        #[serde(flatten)]
129        result: ApiResult<()>,
130    },
131    Delete {
132        #[serde(flatten)]
133        result: ApiResult<()>,
134    },
135}