None => self.into(),
}
}
-}
-impl<'a, 'b> Mul<FiniteNimberRef<'a>> for FiniteNimberRef<'b> {
- type Output = FiniteNimber;
- fn mul(self, other: FiniteNimberRef<'a>) -> FiniteNimber {
- let level = max(self.level(), other.level());
+ fn mul_recurse(self, other: FiniteNimberRef<'a>, level: usize) -> FiniteNimber {
match level.checked_sub(1) {
Some(sublevel) => {
let (alo, ahi) = self.split(sublevel);
}
}
+impl<'a, 'b> Mul<FiniteNimberRef<'a>> for FiniteNimberRef<'b> {
+ type Output = FiniteNimber;
+ fn mul(self, other: FiniteNimberRef<'a>) -> FiniteNimber {
+ let level = max(self.level(), other.level());
+ self.mul_recurse(other, level)
+ }
+}
+
impl_binop_wrappers!(Add, add);
impl_binop_wrappers!(Sub, sub);
impl_binop_wrappers!(Mul, mul);