用途:面向 Rust 开发者的常量泛型与编译期计算技能,帮助在编译期完成计算、校验与类型级建模,减少运行时开销。
主要能力:提供五类解决方案模式——基础常量泛型(如 struct Buffer<T, const N: usize>)、const fn(如编译期计算 fibonacci 并用于数组长度)、MaybeUninit 处理大数组(避免栈溢出,配合 Box 使用)、编译期校验(const fn 配合 assert! 在实例化时报错)、类型级状态机(PhantomData 配合常量泛型区分状态)。同时说明 const fn 当前支持算术、条件、循环、match 与调用其他 const fn,限制包括堆分配、trait 对象、可变引用与浮点等尚未稳定。
使用方式:按工作流先识别可常量化的场景(编译期已知、无堆分配、无动态分发、纯计算),再选择模式,最后验证收益。可用 cargo build --release、cargo check、cargo test --lib 验证,cargo asm 查看常量函数汇编。
适用场景:固定大小缓冲区、编译期配置校验、类型级状态约束、零成本抽象与性能敏感代码。
限制与注意:大数组直接放栈会栈溢出,需用 Box;未初始化内存读取属未定义行为,需显式初始化或正确使用 MaybeUninit;常量泛型尺寸不匹配会报类型错误;const 会延长编译时间、错误信息较复杂,且不应过度使用以免影响可读性。相关技能包括 rust-type-driven、rust-performance、rust-unsafe、rust-macro。中文版本见 SKILL_ZH.md。