我正在尝试定义一个手指树结构并实现其基本操作作为 Rust 中的练习。我提出了以下内容,基本上就是本文中描述的内容。
use self::FingerTree::{Empty, Single, Deep};
use self::Digit::{One, Two, Three, Four};
enum Digit<A> {
One(A),
Two(A, A),
Three(A, A, A),
Four(A, A, A, A),
}
enum Node<V, A> {
Node2(V, A, A),
Node3(V, A, A, A),
}
enum FingerTree<V, A> {
Empty,
Single(A),
Deep {
size: V,
prefix: Digit<A>,
tree: Box<FingerTree<V, Node<V, A>>>,
suffix: Digit<A>,
},
}
fn main() {
let e: FingerTree<i32, String> = Empty;
}
Run Code Online (Sandbox Code Playgroud)
编译给我一个我不明白的错误:
use self::FingerTree::{Empty, Single, Deep};
use self::Digit::{One, Two, Three, Four}; …Run Code Online (Sandbox Code Playgroud)