fix Bounds::join

This commit is contained in:
AF 2023-05-31 15:25:52 +00:00
parent 692802f5de
commit 48e12f9c95
2 changed files with 6 additions and 5 deletions

@ -1 +1 @@
Subproject commit 8e9ea6c8e0db00818f4384127fabf6022be30daf
Subproject commit d430fd9dca7e7ba7475f8be469c2eecb241c0def

View File

@ -19,6 +19,7 @@ impl<A> Clone for Bounds<A> {
pub enum BoundsError<A> {
BoundsViolated { l: Rc<A>, r: Rc<A> },
CannotJoin(Rc<A>),
}
pub enum BoundError<A, E> {
@ -113,13 +114,13 @@ impl<A> Bounds<A> {
) -> Result<Self, BoundsError<A>> {
if let Some(lr) = &l.r {
Self::ordered(lr, key, comparator)?
} else if let Some(ll) = &l.l {
Self::ordered(ll, key, comparator)?
} else {
Err(BoundsError::CannotJoin(key.clone()))?
}
if let Some(rl) = &r.l {
Self::ordered(key, rl, comparator)?
} else if let Some(rr) = &r.r {
Self::ordered(key, rr, comparator)?
} else {
Err(BoundsError::CannotJoin(key.clone()))?
}
Self::new(l.l, r.r, comparator)
}