sorted-hlist

Crates.iosorted-hlist
lib.rssorted-hlist
version0.2.0
created_at2025-04-26 19:59:27.29641+00
updated_at2025-04-28 09:21:48.296762+00
descriptionType-level heterogeneous lists with compile-time intersection and sorting using typenum.
homepage
repositoryhttps://github.com/FraFrieFa/sorted-hlist
max_upload_size
id1650542
size23,949
(FraFrieFa)

documentation

README

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 and HNil
  • 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:

Contribution

Pull requests, suggestions and improvements welcome!

Commit count: 4

cargo fmt