A zero-cost, type-level heterogeneous list (HList) implementation in Rust with support for compile-time sorting constraints and intersection operations - powered by typenum.
- Type-level HLists:
HConsandHNil - Compile-time enforcement of sortedness (
SortedHList) - Type-level set intersection via the
Intersecttrait - Type-safe macro
mk_hlist!(...)for building HLists - No runtime overhead - all type-level logic only
use sorted_hlist::{mk_hlist, Intersect};
use typenum::{U1, U2, U3, U4};
// Create type-level HLists
type A = mk_hlist!(U1, U2, U3);
type B = mk_hlist!(U2, U3, U4);
// Compute intersection
type Common = <A as Intersect<B>>::Output;
// Common = mk_hlist!(U2, U3)- Use in embedded HALs or systems programming where traits and sets represent hardware capabilities
- Keep things fast, predictable, and compile-time checked
- No dependencies other than
typenum
Licensed under either of:
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
Pull requests, suggestions and improvements welcome!