【发布时间】:2016-11-02 14:06:29
【问题描述】:
鉴于以下情况:
use std::fmt::Debug;
#[derive(Debug)]
enum A<T: Debug> {
X,
Y(T),
}
#[derive(Debug)]
struct B;
type C = A<B>;
// use A<B> as C; // Does not compile
我可以把它用作:
fn main() {
let val0 = A::X::<B>;
let val1 = A::Y::<B>(B);
println!("{:?}\t{:?}", val0, val1);
}
但是对于不止一个通用参数(或者如果 A、B 等名称更长,那么我尝试了以下操作但无法编译:
fn main() {
let val0 = C::X;
let val1 = C::Y(B);
println!("{:?}\t{:?}", val0, val1);
}
有错误:
src/main.rs:656:16: 656:20 error: no associated item named `X` found for type `A<B>` in the current scope
src/main.rs:656 let val0 = C::X;
^~~~
src/main.rs:657:16: 657:20 error: no associated item named `Y` found for type `A<B>` in the current scope
src/main.rs:657 let val1 = C::Y(B);
如前所述,我无法使用use 来解决问题。有没有办法绕过它(因为输入整个东西似乎很麻烦)?
rustc --version
rustc 1.9.0 (e4e8b6668 2016-05-18)
【问题讨论】:
-
听起来好像缺少功能...