5 unstable releases
| 0.10.0 | Jul 6, 2020 |
|---|---|
| 0.9.0 | Dec 27, 2019 |
| 0.8.2 | Nov 20, 2019 |
| 0.8.1 | Aug 17, 2019 |
| 0.8.0 | Jun 23, 2019 |
#289 in #incremental
72 downloads per month
Used in 11 crates
(via topo)
3KB
topo
The topo crate provides incremental caching and identifiers for repeated function invocations. Together with a change notification mechanism it can be used to implement a form of incremental computing.
[0.10.0] - 2020-07-05
Fixed
Idgeneration is no longer vulnerable to hashing collisions.
Added
- #[nested] allows specifying a
slot. cache::{Cache, GlobalCache}types for storing interned and memoized values.cache::{SharedCache, SharedGlobalCache}types for safe multiple-owner access to caches, implementingcache_withwith careful locking to allow nested calls in the future.rootfree function for allowing one to re-root a call topology (i.e. if running inside of a broader one).
Removed
CallsiteandPointare no longerpub.#![feature(track_caller)]is no longer needed, although until 1.46 hits beta/stable an MSRV of nightly-2020-07-02 applies.
Changed
call_in_slotaccepts borrowed slots.Idrenamed toCallId.illicitdependency updated to 1.0.impl Traithas been removed from public APIs where it may cause accidentalSend/!Sendcontracts.
[0.9.4] - 2019-12-26
Changed
- Updated
illicitdependency to0.9.0.
[0.9.3] - 2019-12-25
Changed
#[track_caller]is used to generateIds, replacing macros. Requires nightly for now.- Use
DefaultHasherinstead ofFnvHasher.
Added
call,call_in_slotfunctions.
Removed
call!andunstable_make_topo_macro!macros.
[0.9.2] - 2019-11-23
Changed
- Using
fnvcrate for hashingIds.
[0.9.1] - 2019-11-21
Removed
#![warn(intra_doc_resolution_failure)]was causing docs.rs issues due to root_html_url.
[0.9.0] - 2019-11-19
Added
#![forbid(unsafe_code)]call!accepts a "slot" other than the number of times a callsite has been seen. The callsite count is still the default.- Invoking
call!when noPointhas already been entered will now create a new root and enter it before executing the block.
Changed
- Rename
#[bound]to#[nested]. - Rename
current_callsite_counttoCallsite::current_count.
Removed
env!,Env,#[from_env]moved toillicitcrate.root!removed in favor of creating a new root whenevercall!is invoked outside of aPoint.
[0.8.2] - 2019-08-20
Fixed
root!no longer hides the outer environment from the called block.
[0.8.1] - 2019-08-17
Changed
Id'sDebugimpl uses hex.
Fixed
- Incorrect line endings.
[0.8.0] - 2019-06-23
Added
#[topo::bound]attaches a function to the topology.root!andcall!macros attach arbitrary blocks to a new or the current topology respectively, entering newPoints for each call, each of which has a (mostly) uniqueId.env!macro allows declaring type-indexed implicit variables, producesEnvinstances.
[0.1.0] - 2019-05-26
Published to reserve name on crates.io.
Dependencies
~1.5MB
~37K SLoC