This commit is contained in:
AF 2023-05-28 19:41:28 +00:00
parent 911c26b174
commit 6b1fb24fd8

View File

@ -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) {