Guest User

Untitled

a guest
Jun 22nd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.48 KB | None | 0 0
  1. fn get_middle<T>(elements: Vec<T>) -> T {
  2. elements[elements.len() / 2]
  3. }
  4.  
  5. get_middle(vec![1, 2, 3])
  6.  
  7. get_middle(vec![1, 2, 3])
  8. // as well as...
  9. get_middle(0..3)
  10.  
  11. fn get_middle<T, U>(elements: U) -> Option<T>
  12. where
  13. U: IntoIterator<Item = T>,
  14. U::IntoIter: ExactSizeIterator,
  15. {
  16. let mut it = elements.into_iter();
  17. let len = it.len();
  18.  
  19. it.nth(len / 2)
  20. }
  21.  
  22. fn main() {
  23. assert_eq!(get_middle(vec![1, 2, 3]), Some(2));
  24. assert_eq!(get_middle(0..3), Some(1));
  25. }
Add Comment
Please, Sign In to add comment