Rust 中的功能性通用类型级编程: HList、共生产品、通用类、带标签的通用类、验证的通用类、单元和朋友。
frunk frəNGk
- Rust 中的函数式编程工具集。
- 起初可能看起来很奇怪,但你会喜欢它的。
- 来自: funktional (德语) + Rust → Frunk
静态类型的异构列表。
首先, 让我们启用 hlist:
use frunk::{HNil, HCons, hlist};一些基本知识:
let h = hlist![1];
// HList 的类型标注是可选的。这里我们让编译器为我们推断它
// h 的静态类型为: HCons<i32, HNil>
// HList 具有头和尾
assert_eq!(hlist![1].head, 1);
assert_eq!(hlist![1].tail, HNil);
// 可以将元组转换为 HList,反之亦然
let h2 = hlist![42f32, true, "hello"];
let t: (f32, bool, &str) = h2.into();
assert_eq!(t, (42f32, true, "hello"));
let t3 = (999, false)暂无开放 Issues,或尚未同步最近议题。