0.1.4 |
|
---|---|
0.1.3 |
|
0.1.2 |
|
0.1.1 |
|
0.1.0 |
|
#6 in #forget
每月下载 28次
14KB
215 代码行
CACHE REMEMBER: README.md
已废弃库通知
⚠️ 注意:此库已废弃!⚠️
这是友好提醒,您目前正在使用的库已被标记为废弃。我们强烈建议过渡到 cacheapp
的稳定版本。您可以在 https://github.com/JoelTorresAr/cacheapp.git 找到稳定版本。
重要的是要更新依赖项以确保兼容性、安全性和访问最新功能。通过迁移到稳定的 cacheapp
版本,您将受益于更可靠和经过良好维护的解决方案。
请注意,废弃的库可能仍然暂时可用,但它将不再接收更新或支持。尽快切换到废弃库以避免未来可能出现的问题,这对您最有利。
感谢您理解并合作保持您的代码库更新。如果您在迁移过程中有任何问题或需要帮助,请随时联系 cacheapp
社区或库的维护者。
用 cacheapp
开发愉快! 🚀
最好的祝愿,
[Joel Torres]"
资源 | 链接 |
---|---|
包版本 | |
文档 | Cargo 文档 |
[0.1.0] - 2023-06-11
Cache Remember 是一个简单的 Rust 缓存库,允许您缓存函数调用的结果一段时间。受到 Laravel 的 cache remember 启发。
remember 函数使用异步函数作为其参数之一,该函数必须返回一个实现了 Deserialize 的值,Serialize 为 serde。如果它有一个缓存的值,它将返回该值而不执行函数,否则它将执行函数并将结果存储在缓存中以供未来查询。
[0.1.2] - 2023-06-11
在 forget()、forget_all() 和 purge() 函数中删除不必要的异步操作并返回结果。
[0.1.3] - 2023-06-11
将 Box dyn std::error::Error 修改为现在接受任何实现了 Display 特性的 Error 返回值的函数。将 Mutex 修改为 RwLock 以允许多次同时读取。
示例
use cache_remember::CacheRemember;
use std::thread;
use std::time::Duration;
use serde::{Deserialize, Serialize};
use tokio;
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct User {
pub name: String,
pub email: String,
}
pub async fn get_user() -> Result<User, Box<dyn std::error::Error>> {
thread::sleep(Duration::from_secs(1));
Ok(User {
name: "Joel Torres".to_string(),
email: "[email protected]".to_string(),
})
}
fn main() {
// Create a new cache instance
let cache = Cache::new();
// Get the result of the function call
let fun = get_user();
let hours : u64 = 1;
let result = cache.remember("test_remember", hours, fun).await.unwrap();
println!("{:?}", result);
//forget the cache
cache.forget("test_remember");
// remember forever
let fun = get_user();
let result = cache.remember_forever("test_remember", fun).await.unwrap();
println!("{:?}", result);
//forget all cache
cache.forget_all();
println!("{:?}", cache);
//purge expired records in cache
cache.purge();
}
依赖项
~1.1–7MB
~47K SLoC