| Crates.io | pi_stash |
| lib.rs | pi_stash |
| version | 0.1.7 |
| created_at | 2025-11-18 07:17:44.782373+00 |
| updated_at | 2025-11-18 07:17:44.782373+00 |
| description | pi_stash |
| homepage | |
| repository | https://github.com/GaiaWorld/pi_stash.git |
| max_upload_size | |
| id | 1937983 |
| size | 17,563 |
一个线程安全的栈式存储结构,支持并发访问和键值管理。
pi_stash 提供基于字符串键的线程安全栈存储,支持以下特性:
DashMap 和 Mutex 实现高效并发访问在 Cargo.toml 中添加依赖:
[dependencies]
pi_stash = "0.1.6"
use pi_stash::StackStore;
let store = StackStore::new();
// 压入数据
store.set("fruit", "apple".into());
store.set("fruit", "banana".into());
// 获取整个栈的JSON序列化结果
assert_eq!(store.get("fruit").unwrap(), r#"["apple","banana"]"#);
// 删除栈
assert!(store.del_stack("fruit"));
store.set("server:1", "online".into());
store.set("server:2", "offline".into());
store.set("client:3", "active".into());
// 查询包含"server"的键,返回JSON数组字符串
let results = store.iter("server");
assert_eq!(results, Some(r#"[["server:1",["online"]],["server:2",["offline"]]]"#.to_string()));
StackStore::new()创建新的空存储实例。
set(key: &str, value: String)get(key: &str) -> Option<String>None 当键不存在或栈为空iter(key_filter: &str) -> Option<String>del_stack(key: &str) -> booltrue,键不存在返回 falseget 方法返回使用 serde_json 序列化的JSON数组字符串iter 方法会克隆整个栈内容,注意性能影响cargo test --lib
测试包括:
MIT License