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