假设我正在为数组编写一个包装类型。
struct Array<const L: usize, T> {
raw: [T;L]
}
Run Code Online (Sandbox Code Playgroud)
我有一些函数可以改变数组包装器的长度,假设该函数是串联:
impl<const L: usize, T> Array<L, T> {
fn concat<const L2: usize>(self, other: Array<L, T>) -> Array<{L + L2}, T> {todo!();}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译这段代码时,rust 编译器变得非常疯狂。认为这可能与添加与实现多个特征相对应的类型有关,我尝试使用乘法而不是加法,但这也不起作用。
我知道 Rust 可以在编译时计算某些表达式,这只是不允许的情况,还是我遗漏了一些东西?