#tuple #binary #foundation-db #ordered #compatible #upon #client

binary_tuples

基于 FoundationDB 的有序二进制元组的实现,与 FoundationDB 元组兼容

2 个版本

使用旧的 Rust 2015

0.1.1 2018 年 4 月 25 日
0.1.0 2018 年 4 月 25 日

#11#foundation-db

MIT 许可证

36KB
872

二进制元组

这是一个用于处理有序二进制元组的库,旨在与 FoundationDB 客户端库捆绑的元组实现兼容。

该库允许使用以下数据类型

  • 字符串
  • 二进制数组
  • 数字 (i64, f32, f64)
  • 布尔值
  • UUIDs
  • 嵌套元组(读取支持 - 目前尚无创建 API 支持)

API

创建元组最简单的方法是使用公开的 tuple!

#[macro_use]
extern crate binary_tuples;

let user_id = 1;
let value = tuple!("users", user_id, "posts");

// Returns as a byte array
let bytes = value.into_bytes(); 

可以将元组反序列化为一组元组段

use binary_tuples::{Tuple, segment::Segment};

let tuple = Tuple::from_bytes(...)
    .as_segments()
    .unwrap();

match tuple[0] {
    Segment::String(value) => println!("{}", value),
    _ => println!("Other data type") 
}

元组可以作为其他元组的高效前缀重复使用

let users_tuple = tuple!("users", user_id, "posts");

let post_1 = tuple!(users_tuple, post_id_1);
let post_2 = tuple!(users_tuple, post_id_2);

依赖项

~1MB
~12K SLoC