5 个不稳定版本

0.10.0 2020 年 7 月 6 日
0.9.0 2019 年 12 月 27 日
0.8.2 2019 年 11 月 20 日
0.8.1 2019 年 8 月 17 日
0.8.0 2019 年 6 月 23 日

#163#identifier

Download history 103/week @ 2024-04-01 30/week @ 2024-04-08 34/week @ 2024-04-15 53/week @ 2024-04-22 35/week @ 2024-04-29 31/week @ 2024-05-06 40/week @ 2024-05-13 29/week @ 2024-05-20 52/week @ 2024-05-27 32/week @ 2024-06-03 31/week @ 2024-06-10 34/week @ 2024-06-17 35/week @ 2024-06-24 9/week @ 2024-07-08 43/week @ 2024-07-15

每月 90 次下载
11 个 crate 中使用 (通过 topo)

MIT/Apache 许可证

3KB

topo

topo crate 提供增量缓存和标识符,用于重复函数调用。结合变更通知机制,它可以用来实现一种形式的 增量计算

[0.10.0] - 2020-07-05

修复

  • Id 生成不再容易受到哈希冲突的影响。

新增

  • #[nested] 允许指定一个 slot
  • cache::{Cache, GlobalCache} 类型,用于存储内部化和记忆化的值。
  • cache::{SharedCache, SharedGlobalCache} 类型,用于实现安全的多个所有者对缓存的访问,通过谨慎的锁定实现 cache_with,以允许未来的嵌套调用。
  • root 自由函数,允许重新设置调用拓扑的根(即如果在更广泛的调用中运行)。

移除

  • CallsitePoint 已不再 pub
  • #![feature(track_caller)] 已不再需要,尽管直到 1.46 达到 beta/stable,nightly-2020-07-02 仍然适用。

更改

  • call_in_slot 接受借用槽。
  • Id 重命名为 CallId
  • illicit 依赖更新到 1.0。
  • impl Trait 已从公共API中删除,这可能导致意外产生 Send/!Send 合同。

[0.9.4] - 2019-12-26

更改

  • 已更新 illicit 依赖到 0.9.0

[0.9.3] - 2019-12-25

更改

  • #[track_caller] 用于生成 Id,替代宏。目前需要使用夜间构建版。
  • 使用 DefaultHasher 而不是 FnvHasher

新增

  • callcall_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! 除了接受调用位置被看到的次数之外,还可以接受 "slot"。调用位置计数仍然是默认值。
  • 当没有 Point 已被进入时,现在将创建一个新的根,并在执行块之前进入它。

更改

  • #[bound] 重命名为 #[nested]
  • current_callsite_count 重命名为 Callsite::current_count

移除

  • env!Env#[from_env] 已移动到 illicit crate。
  • 已删除 root!,因为每次在 Point 外调用 call! 时都会创建一个新的根。

[0.8.2] - 2019-08-20

修复

  • root! 不会隐藏外部环境,从而不会被调用块隐藏。

[0.8.1] - 2019-08-17

更改

  • IdDebug 实现使用十六进制。

修复

  • 不正确的行结束符。

[0.8.0] - 2019-06-23

新增

  • #[topo::bound] 将一个函数附加到拓扑。
  • root!call! 宏分别将任意块附加到新或当前拓扑,每个调用都会进入新的 Point,每个调用都有一个(主要是)唯一的 Id
  • env! 宏允许声明类型索引的隐式变量,产生 Env 实例。

[0.1.0] - 2019-05-26

发布到crates.io以保留名称。

依赖关系

~1.5MB
~35K SLoC