pub
avl
This commit is contained in:
parent
911c26b174
commit
6b1fb24fd8
@ -50,22 +50,22 @@ impl<E: Display> Display for TreeParseError<E> {
|
|||||||
|
|
||||||
impl<E: Error> Error for TreeParseError<E> {}
|
impl<E: Error> Error for TreeParseError<E> {}
|
||||||
|
|
||||||
struct AvlNode<'a, Ctx: Context<'a>, A: Mentionable<'a, Ctx>> {
|
pub struct AvlNode<'a, Ctx: Context<'a>, A: Mentionable<'a, Ctx>> {
|
||||||
l: AvlTree<'a, Ctx, A>,
|
l: AvlTree<'a, Ctx, A>,
|
||||||
r: AvlTree<'a, Ctx, A>,
|
r: AvlTree<'a, Ctx, A>,
|
||||||
key: Rc<A>,
|
key: Rc<A>,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct AvlTree<'a, Ctx: Context<'a>, A: Mentionable<'a, Ctx>> {
|
pub struct AvlTree<'a, Ctx: Context<'a>, A: Mentionable<'a, Ctx>> {
|
||||||
node: Nullable<'a, Ctx, AvlNode<'a, Ctx, A>>,
|
node: Nullable<'a, Ctx, AvlNode<'a, Ctx, A>>,
|
||||||
height: u64,
|
height: u64,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
struct AvlNodeFactory<F>(F);
|
pub struct AvlNodeFactory<F>(F);
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
struct AvlTreeFactory<F>(NullableFactory<AvlNodeFactory<F>>);
|
pub struct AvlTreeFactory<F>(NullableFactory<AvlNodeFactory<F>>);
|
||||||
|
|
||||||
impl<'a, Ctx: Context<'a>, A: Mentionable<'a, Ctx>> Serializable for AvlNode<'a, Ctx, A> {
|
impl<'a, Ctx: Context<'a>, A: Mentionable<'a, Ctx>> Serializable for AvlNode<'a, Ctx, A> {
|
||||||
fn serialize(&self, serializer: &mut dyn Serializer) {
|
fn serialize(&self, serializer: &mut dyn Serializer) {
|
||||||
|
Loading…
Reference in New Issue
Block a user