wedb_embed 0.1.2

Embedded database engine providing Redis-like APIs, built on fjall / 嵌入式数据库引擎,提供类似 Redis 的接口,底层基于 fjall 开发
Documentation
use crate::key_composer::{KeyComposer, KeyTag, SmallKey};

/// 栈分配零堆分配构造 String 物理键(带类型前缀 KeyTag::RawString = 0x00)
#[inline]
pub fn raw(kc: &KeyComposer<'_>, key: &[u8]) -> SmallKey {
  kc.compose_meta_key_stack(KeyTag::RawString.as_slice(), key)
}

/// 构造 String 物理键字节序列
#[inline]
pub fn raw_bytes(kc: &KeyComposer<'_>, key: &[u8]) -> Vec<u8> {
  let mut v = Vec::with_capacity(kc.scope_prefix_len() + 1 + key.len());
  kc.compose_meta_key_into(KeyTag::RawString.as_slice(), key, &mut v);
  v
}

/// 构造 String 物理前缀
#[inline]
pub fn prefix(kc: &KeyComposer<'_>) -> Vec<u8> {
  kc.compose_meta_prefix(KeyTag::RawString.as_slice())
}