wedb_embed 0.1.0

Embedded Kvrocks-compatible storage engine for WeDb
Documentation
use serde::{Deserialize, Serialize};

/// JSON.SET 命令条件选项(对标 Apache Kvrocks / RedisJSON)
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum JsonSet {
    /// 仅在键不存在时写入
    Nx,
    /// 仅在键已存在时覆盖写入
    Xx,
}

/// JSON.ARRINDEX 命令区间选项
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)]
pub struct JsonArrIndex {
    /// 起始索引(支持负数)
    pub start: isize,
    /// 终止索引(可选,支持负数)
    pub stop: Option<isize>,
}

/// JSON 数值运算类型(对标 Kvrocks NumOpEnum)
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum JsonNumberOp {
    /// 数值累加
    IncrBy,
    /// 数值累乘
    MultBy,
}

/// JSON.GET 格式化选项(对标 Apache Kvrocks INDENT / NEWLINE / SPACE 选项)
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
pub struct JsonGetOptions {
    /// 缩进字符串(如空格)
    pub indent: Option<String>,
    /// 换行符(如 "\n")
    pub newline: Option<String>,
    /// 冒号后空格(如 " ")
    pub space: Option<String>,
}