有没有办法让Rust泛型只接受原始类型?我想稍后在值中的位上迭代,我知道这只有在基元类型中才可能。
struct MyStruct<T> {
my_property: T // my_property HAS to be a primitive type
}
最佳答案
我相信你能得到的最接近的东西是Primitive
trait,它是为内置数值类型实现的。它是其他几个数字特征的组合,最后允许比特修改值。您可能还需要添加BitAnd
/BitOr
/etc.特征,因为Primitive
似乎不允许这些操作:
fn iter_bits<T: Primitive+BitAnd<T, T>+BitOr<T, T>>(x: T) { /* whatever */ }