Rust Patterns
closet
ExperimentalCLOSure-Enhancing Toolbox (CLOSET) provides some questionably-useful macro utilities for closures, including clone_army!, which reduces boilerplate for clone-capturing closures, and vindaloo!, which does automatic currying.
named-block
ExperimentalMacro implementing early-exit-from-any-block
unborrow
ExperimentalMacro for calling a &mut self method with transient &-borrows of self in the parameters
pin-init
ExperimentalSafe pinned-initialization in Rust
docima
ExperimentalGenerate images at build time & embed them in the Rust documentation
dyn-cache
ExperimentalQuery cache indexed by type.
trace-error
ExperimentalExtensions to Rust's error system to automatically include backtraces
errloc_macros
ExperimentalError location utility macros
unchecked-index
ExperimentalUnchecked indexing wrapper using regular index syntax.
bencher
ExperimentalA port of the libtest (unstable Rust) benchmark runner to Rust stable releases. Supports running benchmarks and filtering based on the name. Benchmark execution works exactly the same way and no more (caveat: black_box is still missing!).
py-comp
ExperimentalA macro implementing a Python-like generator expression
fast_fmt
ExperimentalThis crate provides faster, more flexible and more correct alternative to core::fmt
eager
ExperimentalCrate for eager macro expansion.
dyn-eq
ExperimentalTest equality between trait objects
build_timestamp
ExperimentalSimple proc-macro to generate a build timestamp string as a const
easy_strings
ExperimentalErgonomic, garbage collected strings for Rust
finny
ExperimentalFinite State Machines with a procedural builder-style API and compile time transition checks.
typology-derive
ExperimentalType derivation for foreign use
transfer
ExperimentalCrate that exposes a Transfer trait, that is to move what Clone is to copy
wrap
ExperimentalGeneric function wrapping
impl_ops
ExperimentalMacros for easy operator overloading.
ip-macro
ExperimentalMacros for writing literal IP addresses
fast_escape
ExperimentalSimple, fast escaping of characters.
fed
ExperimentalA sketch implementation of anonymous, tagged unions in stable Rust
futures-async-runtime
ExperimentalRuntime for the async/await macros in the `futures` crate.
block_effects
ExperimentalA macro to chain block effects
futures-async-runtime-preview
ExperimentalRuntime for the async/await macros in the `futures` crate.
duck
ExperimentalLike `Iterator::peekable`, but can be stacked an arbitrary number of times.
match-downcast
ExperimentalA set of downcasting matching Rust macros.
sorted
ExperimentalProvides compile time guarantees for sorted sequences.
intern
ExperimentalLibrary for interning strings and other kinds of data. (WIP)
transaction-stm
Experimentaltransaction abstraction of stm
tramp
ExperimentalTrampoline for recursive functions, with support for mutual recursion
u9
ExperimentalUnsigned 9-bit integer type.
valuable_futures
ExperimentalUtils which allow writing futures::Future and futures::Stream by-value
dont_panic_slice
ExperimentalSlice that causes link error instead of panicking.
init_with
ExperimentalHelper trait to initilize an array with a function
transaction
Experimentaltransaction abstraction library (a.k.a. transaction monad)
struct_deser-derive
ExperimentalMacros 1.1 implementation of #[derive(StructDeser)]
empty-box
ExperimentalAllows for `Box`s to have their values moved out and replaced with new values, while reusing the same allocation.
id-vec
ExperimentalSimplify Graphs in Rust. Introduces IdVec, which automatically creates Ids for each new object, reusing deleted Ids.
uncheck-ord
ExperimentalWrapper type to easily convert Ord to PartialOrd. inspired by std::cmp::Reverse
kommand
ExperimentalCommand-line arguments via function arguments
empty-option
ExperimentalConvenient wrappers for taking/replacing values from mutable references to `Option`s and enforcing invariants.
singleton-cell
ExperimentalA more powerful Ghost Cell allowing the use of any singleton as the key
len-trait
ExperimentalLen trait for collectons.
iter-trait
ExperimentalIter trait for collectons.
he_di_internals
ExperimentalCommon code for he_di crates
he_di_derive
ExperimentalCode generation for he_di dependency injection / inversion of control framework
he_di
ExperimentalDependency Inversion / Dependency Injection / Inversion of control container for Rust