3 unstable releases
new 0.2.0 | Apr 28, 2025 |
---|---|
0.1.1 | Apr 27, 2025 |
0.1.0 | Apr 26, 2025 |
#290 in Embedded development
344 downloads per month
9KB
78 lines
sorted-hlist
A zero-cost, type-level heterogeneous list (HList) implementation in Rust with support for compile-time sorting constraints and intersection operations - powered by typenum
.
Features
- Type-level HLists:
HCons
andHNil
- Compile-time enforcement of sortedness (
SortedHList
) - Type-level set intersection via the
Intersect
trait - Type-safe macro
mk_hlist!(...)
for building HLists - No runtime overhead - all type-level logic only
Example
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)
Crate Goals
- 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
License
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)
Contribution
Pull requests, suggestions and improvements welcome!
Dependencies
~410KB
~12K SLoC