Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.60 KB | None | 0 0
  1. fn foo<T: Clone>(slices: &[&[T]]) -> Vec<T> {
  2. slices.iter().flat_map(|s| s.iter()
  3. .cloned()).collect::<Vec<T>>()
  4. }
  5.  
  6. fn bar<T: Clone>(slices: &[&[T]]) -> Vec<T> {
  7. let n: usize = slices.iter().fold(0, |acc, s| acc + s.len());
  8. let mut vec = Vec::with_capacity(n);
  9. slices.iter().for_each(|s| vec.extend_from_slice(s));
  10. vec
  11. }
  12.  
  13. fn main() {
  14. let a: [u8; 4] = 42u32.to_le_bytes();
  15. let v: Vec<u8> = vec![1, 2, 3, 4, 5, 6];
  16.  
  17. let j: Vec<u8> = foo(&[&a, &v, &a, &a, &a, &v]);
  18. println!("{:?}", j);
  19.  
  20. let j2: Vec<u8> = bar(&[&a, &v, &a, &a, &a, &v]);
  21. println!("{:?}", j2);
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement