Rust中基于常量泛型实现编译时可选字段的优化问题咨询
Rust中基于常量泛型实现编译时可选字段的优化问题咨询
嘿,各位Rust同好,我最近在研究怎么在编译时通过泛型参数控制结构体字段的存在与否,目前摸索出了这么一种写法:
struct MyStruct<T, const B: usize> { optional: [T; B] }
原理其实挺直观的——当常量泛型B设为0的时候,这个数组字段的大小就变成0,相当于在编译时把这个字段“隐去”了,完全不会占用内存,这一点刚好踩中我的需求点。
不过现在我碰到两个小麻烦,想请教下有没有优化的思路:
- 我希望
B只能被设置为0或者1,不想让它接受其他usize数值,避免出现误用的情况; - 现在访问这个可选字段只能用
var.optional,如果是B=1的场景,每次都要写数组索引(比如var.optional[0])感觉有点啰嗦,有没有更简洁友好的访问方式呀?
内容来源于stack exchange
相关产品推荐
相关产品推荐

