ckeylock_core/
request.rs

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    BatchGet { keys: Vec<Vec<u8>> },
11    Clear,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
15pub struct RequestWrapper {
16    req: Request,
17    id: Vec<u8>,
18}
19
20impl RequestWrapper {
21    pub fn new(req: Request) -> Self {
22        Self {
23            req,
24            id: uuid::Uuid::new_v4().as_bytes().to_vec(),
25        }
26    }
27    pub fn id(&self) -> Vec<u8> {
28        self.id.clone()
29    }
30    pub fn req(&self) -> &Request {
31        &self.req
32    }
33    pub fn to_string(&self) -> String {
34        serde_json::to_string_pretty(self).unwrap()
35    }
36}