pub unsafe trait IsMutToken<'a>: IsRefToken<'a> + Sized {
/// Obtain a new ZST token from something that might be a real object.
#[inline]
- fn mut_token<'r, 's>(mut self) -> MutToken<'r>
- where 's: 'r, 'a: 'r,
+ fn mut_token<'r>(mut self) -> MutToken<'r>
+ where 'a: 'r,
{
MutToken(PhantomData)
}
#[test]
fn demo() {
use list::{List, HeadAndTail};
+ use HeadAndTail as H;
let s = |s: &str| format!("{s}");
drop(l);
let mut l = List::new(); l.check_consistency();
- assert_eq!(l.head_and_tail_mut(), HeadAndTail::None);
+ assert_eq!(l.head_and_tail_mut(), H::None);
l.append(s("hi")); l.check_consistency();
+ assert_eq!(l.head_and_tail_mut(), H::One(&mut s("hi")));
+
l.append(s("ho")); l.check_consistency();
+ assert_eq!(l.head_and_tail_mut(), H::Both(&mut s("hi"), &mut s("ho")));
write!(l.front_mut().unwrap(), "!").unwrap();
assert_eq!(l.pop_front(), Some(s("hi!"))); l.check_consistency();