4 个版本
0.1.1 | 2021年3月12日 |
---|---|
0.1.0 | 2021年2月13日 |
0.0.5-beta.5 |
|
0.0.1 |
|
#2921 in 数据库接口
27 每月下载量
16KB
380 行
the-key
为键值存储提供简单快速的键管理工具
只需将其放入您的 Cargo.toml 中
[dependencies]
the-key = "0.1.0"
参见 docs.rs 上的文档
许可证
MIT
lib.rs
:
此库为键值存储提供易于使用的键管理API
示例
use the_key::*;
// Define key parts
define_key_part!(Users, &[11, 11]);
define_key_part!(Profiles, &[22, 22]);
define_key_part!(Photos, &[33, 33]);
// Define keys sequences
define_key_seq!(UsersProfiles, [Users, Profiles]);
define_key_seq!(UsersPhotos, [Users, Photos]);
fn main() {
let user_id = &[81, 81];
let profiles = UsersProfiles::new();
let photos = UsersPhotos::new().extend("UserId", user_id);
let user_profile_key = profiles.create_key(user_id);
// Debug example
assert_eq!(
format!("{:?}", user_profile_key),
"Users[11, 11] -> Profiles[22, 22] -> Key=[81, 81]",
);
// Pretty debug example
println!("{:#?}", user_profile_key);
// Users[11, 11]
// └ Profiles[22, 22]
// └ Key=[81, 81]
assert_eq!(
format!("{:?}", photos),
"Users[11, 11] -> Photos[33, 33] -> UserId[81, 81]",
);
// User
assert_eq!(
user_profile_key.to_vec(),
vec![11, 11, 22, 22, 81, 81],
);
// User's one photo
assert_eq!(
photos.create_key(&[99, 99]).to_vec(),
vec![11, 11, 33, 33, 81, 81, 99, 99],
);
}