thunk 0.1.2

Primitives for generic lazy evaluation in Rust. This crate requires nightly for `untagged_unions` and `fnbox`.
Documentation

Build Status Docs Status On crates.io

N.B. this crate requires nightly, as it makes use of FnBox and untagged unions.

thunk: Generic lazy evaluation for Rust

The thunk crate provides primitives for lazy evaluation in Rust.

At present, it provides three thunk types and a trait which encapsulates lazily evaluated types, Lazy. The thunk types are as follows:

  • Thunk: non-Send, non-Sync thunks.
  • AtomicThunk: Send + Sync thunks which use atomic data internally. This is slower than Thunk, but AtomicThunk is thread-safe.
  • Strict: Send + Sync, paradoxically strict thunks. Strict doesn't actually defer anything, and is provided to make it simpler to write code which is generic over strictness.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.