use kinds::Copy;
use util;
use num::Zero;
-use iter::BaseIter;
+use iter::{BaseIter, MutableIter};
#[cfg(test)] use ptr;
#[cfg(test)] use str;
}
}
+impl<T> MutableIter<T> for Option<T> {
+ #[inline(always)]
+ fn each_mut(&mut self, f: &fn(&'self mut T) -> bool) {
+ match *self { None => (), Some(ref mut t) => { f(t); } }
+ }
+}
+
pub impl<T> Option<T> {
/// Returns true if the option equals `none`
#[inline(always)]
}
};
- return a_len < b_len;
+ a_len < b_len
}
impl<K: Ord + TotalOrd, V> Ord for TreeMap<K, V> {
skew(save);
- match save.right {
- Some(ref mut right) => {
+ for save.right.each_mut |right| {
skew(right);
- match right.right {
- Some(ref mut x) => { skew(x) },
- None => ()
- }
- }
- None => ()
+ for right.right.each_mut |x| { skew(x) }
}
split(save);
- match save.right {
- Some(ref mut x) => { split(x) },
- None => ()
- }
+ for save.right.each_mut |x| { split(x) }
}
return removed;
}
*node = None;
- return true;
+ true
}
#[cfg(test)]