wedb_embed 0.1.2

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

/// T-Digest 分位数统计结构操作接口 (T-Digest)
pub trait TDigest: DbLike {
  fn tdigest_create<K: AsRef<[u8]>>(&self, key: K, compression: f64) -> Result<()>;
  fn tdigest_add<K: AsRef<[u8]>>(&self, key: K, values: &[f64]) -> Result<()>;
  fn tdigest_min<K: AsRef<[u8]>>(&self, key: K) -> Result<f64>;
  fn tdigest_max<K: AsRef<[u8]>>(&self, key: K) -> Result<f64>;
  fn tdigest_quantile<K: AsRef<[u8]>>(&self, key: K, quantiles: &[f64])
  -> Result<Vec<Option<f64>>>;
  fn tdigest_cdf<K: AsRef<[u8]>>(&self, key: K, values: &[f64]) -> Result<Vec<Option<f64>>>;
  fn tdigest_rank<K: AsRef<[u8]>>(&self, key: K, values: &[f64]) -> Result<Vec<i64>>;
  fn tdigest_revrank<K: AsRef<[u8]>>(&self, key: K, values: &[f64]) -> Result<Vec<i64>>;
  fn tdigest_byrank<K: AsRef<[u8]>>(&self, key: K, ranks: &[u64]) -> Result<Vec<Option<f64>>>;
  fn tdigest_byrevrank<K: AsRef<[u8]>>(&self, key: K, ranks: &[u64]) -> Result<Vec<Option<f64>>>;
  fn tdigest_trimmed_mean<K: AsRef<[u8]>>(
    &self,
    key: K,
    low_cut: f64,
    high_cut: f64,
  ) -> Result<Option<f64>>;
  fn tdigest_reset<K: AsRef<[u8]>>(&self, key: K) -> Result<()>;
  fn tdigest_merge<K: AsRef<[u8]>>(
    &self,
    dest_key: K,
    source_keys: &[K],
    options: TDigestMerge,
  ) -> Result<()>;
  fn tdigest_info<K: AsRef<[u8]>>(&self, key: K) -> Result<TDigestInfo>;
}