1use serde::{Deserialize, Serialize};
2#[derive(Debug, Clone, Serialize, Deserialize)]
3pub enum Request {
4 Set { key: Vec<u8>, value: Vec<u8> },
5 Get { key: Vec<u8> },
6 Delete { key: Vec<u8> },
7 List,
8 Exists { key: Vec<u8> },
9 Count,
10 Clear,
11}
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
14pub struct RequestWrapper {
15 req: Request,
16 id: Vec<u8>,
17}
18
19impl RequestWrapper {
20 pub fn new(req: Request) -> Self {
21 Self {
22 req,
23 id: uuid::Uuid::new_v4().as_bytes().to_vec(),
24 }
25 }
26 pub fn id(&self) -> Vec<u8> {
27 self.id.clone()
28 }
29 pub fn req(&self) -> &Request {
30 &self.req
31 }
32 pub fn to_string(&self) -> String {
33 serde_json::to_string(self).unwrap()
34 }
35}