15 个版本 (6 个重大变更)
0.13.2 | 2021年2月2日 |
---|---|
0.13.1 | 2020年12月29日 |
0.13.0 | 2020年7月20日 |
0.9.4 | 2019年12月27日 |
0.8.0 | 2019年6月23日 |
#176 in 缓存
每月下载量 98
在 10 个crate中使用 (4个直接使用)
105KB
1.5K SLoC
topo
topo crate提供增量缓存和重复函数调用的标识符。与变更通知机制结合使用,可以实现一种形式的 增量计算。
[0.13.2] - 2021-02-01
变更
- 内部重构以减少代码大小。
[0.13.1] - 2020-12-28
添加
wasm-bindgen
cargo功能,该功能在wasm32目标上启用parking_lot的正确使用。
[0.13.0] - 2020-07-19
移除
cache
模块提取到dyn-cache
crate。
[0.12.0] - 2020-07-06
变更
cache::{Cache, LocalCache}::get_if_arg_eq_prev_input
的返回类型现在也返回查询类型的哈希值,并且cache::{Cache, LocalCache}::store
需要它。
[0.11.0] - 2020-07-06
添加
cache::{Cache, LocalCache}::Hashed
存储查询键及其哈希值以供以后存储。
变更
cache::{Cache, LocalCache}::get_if_arg_eq_prev_input
在查找失败时现在返回Err(Hashed)
而不是None
。现在,在插入新的输入和输出时,这两种类型的store函数现在都需要传递Hashed
。- 缓存内容现在在单个循环中GC,之前每个命名空间都有两次迭代。
修复
- 此版本移除了缓存API中的最后一个“已知冗余”工作。
[0.10.0] - 2020-07-05
修复
Id
生成不再容易受到哈希冲突的影响。
添加
- #[nested]允许指定一个
slot
。 cache::{Cache, GlobalCache}
用于存储内部化和缓存化的值的类型。cache::{SharedCache, SharedGlobalCache}
类型,用于实现安全的多所有者访问缓存,通过谨慎的锁定实现cache_with
,以便将来允许嵌套调用。root
是一个免费函数,允许重新设置调用拓扑的根(即在更大的调用拓扑内部运行时)。
移除
Callsite
和Point
不再是pub
。#![feature(track_caller)]
不再需要,尽管在 1.46 达到 beta/stable 之前,MSRV 为 nightly-2020-07-02。
变更
call_in_slot
接受借用槽。Id
已重命名为CallId
。illicit
依赖项更新到 1.0。impl Trait
已从可能导致意外的Send
/!Send
合约的公共 API 中移除。
[0.9.4] - 2019-12-26
变更
- 将
illicit
依赖项更新到0.9.0
。
[0.9.3] - 2019-12-25
变更
#[track_caller]
用于生成Id
,取代宏。目前需要 nightly。- 使用
DefaultHasher
代替FnvHasher
。
添加
call
和call_in_slot
函数。
移除
call!
和unstable_make_topo_macro!
宏。
[0.9.2] - 2019-11-23
变更
- 使用
fnv
crate 对Id
进行哈希。
[0.9.1] - 2019-11-21
移除
#![warn(intra_doc_resolution_failure)]
由于 root_html_url 而导致 docs.rs 出现问题。
[0.9.0] - 2019-11-19
添加
#![禁止(不安全代码)]
call!
除了接受调用站点被看到的次数之外的 "槽"。调用站点计数仍然是默认值。- 在没有
Point
已经被输入时调用call!
将现在创建一个新的根并进入它,然后再执行代码块。
变更
- 将
#[bound]
重命名为#[nested]
。 - 将
current_callsite_count
重命名为Callsite::current_count
。
移除
env!
、Env
、#[from_env]
已移动到illicit
库。- 在
Point
外调用call!
时,移除了root!
,改为创建新的根。
[0.8.2] - 2019-08-20
修复
root!
现在不再隐藏外部环境。
[0.8.1] - 2019-08-17
变更
Id
的Debug
实现使用十六进制。
修复
- 行结束符错误。
[0.8.0] - 2019-06-23
添加
#[topo::bound]
将一个函数附加到拓扑结构。root!
和call!
宏分别将任意块附加到新的或当前的拓扑结构,每个调用都会进入新的Point
,每个调用都有一个(主要是)唯一的Id
。env!
宏允许声明类型索引的隐式变量,生成Env
实例。
[0.1.0] - 2019-05-26
发布以在 crates.io 上保留名称。
依赖关系
~2.7–4.5MB
~88K SLoC