1 2 3 4 5 6 7 8 9 10
pub trait PushReturn<T> { fn push_and_get(&mut self, t: T) -> &mut T; } impl<T> PushReturn<T> for Vec<T> { fn push_and_get(&mut self, t: T) -> &mut T { self.push(t); self.last_mut().unwrap() } }