1use TakeSome;
2
3impl<T> TakeSome for Vec<T> {
4 type Item = T;
5
6 fn take_some(&mut self) -> Option<T> {
8 self.pop()
9 }
10}
11
12#[cfg(test)]
13mod tests {
14 use super::*;
15
16 #[test]
17 fn check_vec() {
18 let mut empty: Vec<String> = Vec::new();
19 assert_eq!(None, empty.take_some());
20
21 let mut one_element: Vec<_> = vec!["check".to_string()];
22 assert_eq!(Some("check".into()), one_element.take_some());
23 assert!(one_element.is_empty());
24
25 let mut vec: Vec<_> = vec!["check".to_string(), "lol".into(), "wut".into()];
26 assert!(vec.take_some().is_some());
27 assert_eq!(2, vec.len());
28 }
29}