Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn foo<T: Clone>(slices: &[&[T]]) -> Vec<T> {
- slices.iter().flat_map(|s| s.iter()
- .cloned()).collect::<Vec<T>>()
- }
- fn bar<T: Clone>(slices: &[&[T]]) -> Vec<T> {
- let n: usize = slices.iter().fold(0, |acc, s| acc + s.len());
- let mut vec = Vec::with_capacity(n);
- slices.iter().for_each(|s| vec.extend_from_slice(s));
- vec
- }
- fn main() {
- let a: [u8; 4] = 42u32.to_le_bytes();
- let v: Vec<u8> = vec![1, 2, 3, 4, 5, 6];
- let j: Vec<u8> = foo(&[&a, &v, &a, &a, &a, &v]);
- println!("{:?}", j);
- let j2: Vec<u8> = bar(&[&a, &v, &a, &a, &a, &v]);
- println!("{:?}", j2);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement