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#[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}