more concrete BoundsError
This commit is contained in:
parent
e568f70875
commit
4d635e9e6a
@ -10,7 +10,8 @@ pub struct Bounds<A> {
|
|||||||
|
|
||||||
pub enum BoundsError<A> {
|
pub enum BoundsError<A> {
|
||||||
BoundsViolated { l: A, r: A },
|
BoundsViolated { l: A, r: A },
|
||||||
CannotJoin(A),
|
OverflowL(A),
|
||||||
|
OverflowR(A),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<A: Clone> Bounds<A> {
|
impl<A: Clone> Bounds<A> {
|
||||||
@ -60,12 +61,12 @@ impl<A: Clone> Bounds<A> {
|
|||||||
if let Some(lr) = &l.r {
|
if let Some(lr) = &l.r {
|
||||||
Self::ordered(lr, key, comparator)?
|
Self::ordered(lr, key, comparator)?
|
||||||
} else {
|
} else {
|
||||||
Err(BoundsError::CannotJoin(key.clone()))?
|
Err(BoundsError::OverflowL(key.clone()))?
|
||||||
}
|
}
|
||||||
if let Some(rl) = &r.l {
|
if let Some(rl) = &r.l {
|
||||||
Self::ordered(key, rl, comparator)?
|
Self::ordered(key, rl, comparator)?
|
||||||
} else {
|
} else {
|
||||||
Err(BoundsError::CannotJoin(key.clone()))?
|
Err(BoundsError::OverflowR(key.clone()))?
|
||||||
}
|
}
|
||||||
Self::new(l.l, r.r, comparator)
|
Self::new(l.l, r.r, comparator)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user