fbc_starter/cache/
cache_key.rs

1use serde::{Deserialize, Serialize};
2use std::time::Duration;
3
4/// 缓存 Value 类型
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6pub enum ValueType {
7    /// 对象
8    Obj,
9    /// 字符串
10    String,
11    /// 数字
12    Number,
13}
14
15impl ValueType {
16    pub fn as_str(&self) -> &'static str {
17        match self {
18            ValueType::Obj => "obj",
19            ValueType::String => "string",
20            ValueType::Number => "number",
21        }
22    }
23}
24
25/// 缓存 key 类型
26#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct CacheKey {
28    pub key: String,
29    pub expire: Option<Duration>,
30}
31
32impl CacheKey {
33    pub fn new(key: String, expire: Option<Duration>) -> Self {
34        Self { key, expire }
35    }
36}
37
38/// Hash 缓存 key 类型
39#[derive(Debug, Clone, Serialize, Deserialize)]
40pub struct CacheHashKey {
41    pub key: String,
42    pub field: Option<String>,
43    pub expire: Option<Duration>,
44}
45
46impl CacheHashKey {
47    pub fn new(key: String, field: Option<String>, expire: Option<Duration>) -> Self {
48        Self { key, field, expire }
49    }
50}