ckeylock-core 0.1.3

Core library for ckeylock.
Documentation
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Request {
    Set { key: Vec<u8>, value: Vec<u8> },
    Get { key: Vec<u8> },
    Delete { key: Vec<u8> },
    List,
    Exists { key: Vec<u8> },
    Count,
    BatchGet { keys: Vec<Vec<u8>> },
    Clear,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RequestWrapper {
    req: Request,
    id: Vec<u8>,
}

impl RequestWrapper {
    pub fn new(req: Request) -> Self {
        Self {
            req,
            id: uuid::Uuid::new_v4().as_bytes().to_vec(),
        }
    }
    pub fn id(&self) -> Vec<u8> {
        self.id.clone()
    }
    pub fn req(&self) -> &Request {
        &self.req
    }
    pub fn to_string(&self) -> String {
        serde_json::to_string_pretty(self).unwrap()
    }
}