#environment #context #global #singleton

illicit

An implicit thread-local environment which is indexed by type

8 releases (4 stable)

1.1.2 Feb 2, 2021
1.1.1 Aug 9, 2020
1.1.0 Jul 20, 2020
0.10.0 Jul 3, 2020
0.9.1 Nov 22, 2019

#604 in Rust patterns

Download history 16/week @ 2023-12-18 16/week @ 2023-12-25 20/week @ 2024-01-08 10/week @ 2024-01-15 5/week @ 2024-01-22 17/week @ 2024-02-05 32/week @ 2024-02-12 11/week @ 2024-02-19 85/week @ 2024-02-26 61/week @ 2024-03-04 45/week @ 2024-03-11 53/week @ 2024-03-18 48/week @ 2024-03-25 222/week @ 2024-04-01

380 downloads per month
Used in 13 crates (8 directly)

MIT/Apache

23KB
294 lines

illicit

The illicit crate provides type-indexed thread-local environments.

[1.1.2] - 2021-02-01

Changed

  • Internal refactors to reduce code size.

[1.1.1] - 2020-08-20

Added

  • Guard returned from get() impls Debug.

[1.1.0] - 2020-07-12

Added

  • AsContext trait offers a shorthand for adding a single type to the local environment.

[1.0.0] - 2020-07-03

Commiting to the current API for future 1.* releases.

[0.10.0] - 2020-07-03

Added

  • impl From<Snapshot> for Layer allows reusing collected snapshots.

Removed

  • #![feature(track_caller)] (requires >= nightly-2020-07-02 until 1.46 is beta/stable)
  • Support for owned/cloned arguments in from_env.

Changed

  • EnvSnapshot renamed to Snapshot.
  • Env::get, Env::expect, Env::snapshot moved to get, expect, free functions and Snapshot::get associated function.
  • Env renamed to Layer.
  • Layer::with renamed to Layer::offer.
  • from_env requires at least one argument.
  • from_env adds "Environment Expectations" doc comment to expanded function.
  • Additions to the environment track their location with std::panic::Location.

[0.9.2] - 2019-12-25

Changed

  • Microbenchmark times were improved.

[0.9.1] - 2019-11-22

Fixed

  • Relaxed intra-crate doc lint to allow docs.rs publish to succeed.

[0.9.0] - 2019-11-19

Initial release which consists mostly of code extracted from topo.

Added

  • Env, EnvSnapshot, from_env.

Changed

  • Env implements Debug.
  • expect prints the current environment as a stack of layers on failure.

Removed

  • Scope
  • root! { ... }

Dependencies

~1.5MB
~35K SLoC