4 个版本
0.1.3 | 2021 年 8 月 22 日 |
---|---|
0.1.2 | 2021 年 8 月 22 日 |
0.1.1 | 2021 年 8 月 21 日 |
0.1.0 | 2021 年 8 月 21 日 |
#24 在 #async-pool 中
9KB
181 行代码(不含注释)
apool
本库允许您懒加载地创建任何类型的 T: Send + Sync
池。
- 当尝试获取
&mut T
- 如果没有创建实例,将创建一个新的实例,
- 如果所有实例都在使用中,将创建一个新的实例,
除非达到指定的池最大值,否则任务将等待一个实例变得可用。
使用方法
let pool = Pool::<FakeDatabase, &'static str>::new(
4,
"fakedb://127.0.0.1:1337/fake_website",
|state, transformer| {
let url = *state;
transformer.spawn(async {
FakeDatabase::connect(url).await.unwrap()
});
},
);
let guard = pool.get().await;
guard.commit_data().await;
依赖关系
~2–3MB
~48K SLoC