wedb_embed 0.1.2

Embedded database engine providing Redis-like APIs, built on fjall / 嵌入式数据库引擎,提供类似 Redis 的接口,底层基于 fjall 开发
Documentation
use crate::{
  api::bitmap::conf::{BitOp, BitfieldOperation, BitfieldValue},
  error::Result,
  traits::DbLike,
};

/// 位图结构操作接口 (Bitmaps)
pub trait Bitmap: DbLike {
  fn setbit<K: AsRef<[u8]>>(&self, key: K, offset: u64, bit: u8) -> Result<u8>;
  fn getbit<K: AsRef<[u8]>>(&self, key: K, offset: u64) -> Result<u8>;
  fn bitcount<K: AsRef<[u8]>>(&self, key: K, start: Option<i64>, end: Option<i64>) -> Result<u64>;
  fn bitcount_opts<K: AsRef<[u8]>>(
    &self,
    key: K,
    start: Option<i64>,
    end: Option<i64>,
    is_bit_index: bool,
  ) -> Result<u64>;
  fn bitpos<K: AsRef<[u8]>>(
    &self,
    key: K,
    bit: u8,
    start: Option<i64>,
    end: Option<i64>,
  ) -> Result<i64>;
  fn bitpos_opts<K: AsRef<[u8]>>(
    &self,
    key: K,
    bit: u8,
    start: Option<i64>,
    end: Option<i64>,
    stop_given: bool,
    is_bit_index: bool,
  ) -> Result<i64>;
  fn bitop<K: AsRef<[u8]>, S: AsRef<[u8]>>(
    &self,
    op: BitOp,
    dest_key: K,
    src_keys: &[S],
  ) -> Result<usize>;
  fn bitfield<K: AsRef<[u8]>>(
    &self,
    key: K,
    ops: &[BitfieldOperation],
  ) -> Result<Vec<Option<BitfieldValue>>>;
  fn bitfield_read_only<K: AsRef<[u8]>>(
    &self,
    key: K,
    ops: &[BitfieldOperation],
  ) -> Result<Vec<Option<BitfieldValue>>>;
  fn exec_bitfield<K: AsRef<[u8]>>(
    &self,
    key: K,
    ops: &[BitfieldOperation],
    read_only: bool,
  ) -> Result<Vec<Option<BitfieldValue>>>;
  fn get_bitmap_bytes<K: AsRef<[u8]>>(&self, key: K) -> Result<Option<Vec<u8>>>;
  fn del_bitmap<K: AsRef<[u8]>>(&self, key: K) -> Result<bool>;
}