Следующий код:
use std::marker::PhantomData;
trait MyTrait {
const FOO: usize;
}
struct MyStruct<T: MyTrait> {
v: [u32; <T as MyTrait>::FOO],
p: PhantomData<T>,
}
выдает мне следующую ошибку компиляции:
error[E0277]: the trait bound `T: MyTrait` is not satisfied
--> src/lib.rs:8:14
|
4 | const FOO: usize;
| ----------------- required by `MyTrait::FOO`
...
7 | struct MyStruct<T: MyTrait> {
| -- help: consider further restricting this bound: `T: MyTrait +`
8 | v: [u32; <T as MyTrait>::FOO],
| ^^^^^^^^^^^^^^^^^^^ the trait `MyTrait` is not implemented for `T`
( Ссылка на игровую площадку )
Как я могу успешно использовать FOO
при определении моего вектора?