8个版本 (4个破坏性更新)
0.5.0 | 2023年5月29日 |
---|---|
0.4.0 | 2023年3月22日 |
0.4.0-RC1 | 2023年1月12日 |
0.3.1 | 2022年11月10日 |
0.1.2 | 2022年10月8日 |
#863 in 算法
每月740次下载
50KB
858 行
lazy_async_promise: 用于管理tokio和egui的简单原语
这个crate目前只提供简单的原语,用于使用tokio从主线程获取计算时间
LazyVecPromise
用于基于向量的存储,可以在任务进行时显示。LazyValuePromise
用于单个值future,可以在任务进行时更新。我的使用场景是迭代算法,其中中间结果对于显示是有趣的。
正如其名,这两个都是懒加载的,直到第一次被轮询之前都不会发生任何操作。
对于有或没有值的单个值,有ImmediateValuePromise
可以立即触发计算。没有计算过程中的值读取,所以要么完成,要么没有。经过大量使用后,我现在倾向于用ImmediateValuePromise
包裹在Option
中,用于大多数懒值。特别是当不需要中间值时,这在技术上足够简单,也更简单。此外,从0.4.0版本开始,它现在非常方便使用,请参阅文档中的示例。
此crate的另一个示例使用,一个小的egui/eframe博客阅读器,可以在这里找到
变更日志
0.5.0
- 修复了与BoxSendError的可见性问题(感谢@aspcartman)
- 为立即值promise添加了进度跟踪包装器(至少对我来说,使lazyvaluepromise变得过时)
- 更新了文档
0.4.0:
- 为懒和立即结构添加了更灵活的API,允许获取值
- 为基于option的立即值promise的用法添加了更方便的DirectCacheAccess trait
- 更新了文档
0.3.1:
- 为懒结构添加了更好的API宏
0.3.0:
- 删除了
into_boxed
trait,以支持常规的From
trait,这允许在ImmediateValuePromise
中直接使用?-操作符 - 为
LazyVecPromise
和LazyValuePromise
添加了进度指示器 - 指示是通过确保值在0.0和1.0之间的
Progress
强类型完成的 - 为mac、Windows和Linux添加了持续集成 - 相比Linux,mac OS需要更多的时间来调整测试时间。
依赖项
约2-3MB
约47K SLoC