1 2 3 4 5 6 7 8 9 10 11 12
pub trait OptionExt<T> { fn insert(&mut self, val: T, err: &str); } impl<T> OptionExt<T> for Option<T> { fn insert(&mut self, val: T, err: &str) { match self { Some(_) => panic!("{}", err), slot => *slot = Some(val), } } }