Rust 如何在where子句中使用关联常量?

Rust 如何在where子句中使用关联常量?,rust,Rust,以下内容对我来说似乎是一个bug struct Seq([u8; 8]); impl From<[u8; 8]> for Seq { fn from(data: [u8; 8]) -> Seq { Seq(data) } } trait Sequence { const LEN: usize; } impl Sequence for Seq { const LEN: usize = 8; } trait ByteSeque

以下内容对我来说似乎是一个bug

struct Seq([u8; 8]);

impl From<[u8; 8]> for Seq {
    fn from(data: [u8; 8]) -> Seq {
        Seq(data)
    }
}

trait Sequence {
    const LEN: usize;
}

impl Sequence for Seq {
    const LEN: usize = 8;
}

trait ByteSequence {
    fn check();
}

impl<S> ByteSequence for S
where
    S: Sequence + From<[u8; <S as Sequence>::LEN]>,
{
    fn check() {}
}
struct Seq([u8;8]);
从为Seq执行的impl-From{
fn来源(数据:[u8;8])->序号{
序号(数据)
}
}
性状序列{
常数:使用;
}
Seq的impl序列{
常数LEN:usize=8;
}
特征字节序列{
fn检查();
}
S的impl ByteSequence
哪里
S:序列+来自,
{
fn check(){}
}
导致以下错误:

error[E0277]:未满足特征绑定'S:Sequence'
-->src/main.rs:23:29
|
23 | S:序列+起始,
|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^未为`S实现特征“序列”`
|
=帮助:考虑添加一个“哪里s:序列”绑定
=注意:`Sequence::LEN'需要`
我还尝试在一个额外的行中或直接在impl声明中添加绑定。

这不是一个bug,只是还没有实现。您也许可以针对不太有用的错误消息提交另一个问题(至少已经有了)。

这不是一个bug,只是还没有实现。您也许可以针对不太有用的错误消息提交另一个问题(至少有)