У меня есть кусочек байтов start = [30u8; 5]
и middle = [40u8; 3]
и вектор кусочков байтов:
let first = [1u8; 10];
let second = [2u8; 10];
let third = [3u8; 10];
let elements: Vec<[u8; 10]> = vec![first, second, third];
Я хочу объединить все вместе, таким образом, чтобы я получил один байт срез, который выглядит как
[30, 30, 30, 30, 30, 40, 40, 40, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
Однако, хотя я могу объединить start
и middle
, когда я пытаюсь добавить вектор elements
, он терпит неудачу. Я знаю, что ошибочно пытаюсь перебрать элементы вектора для объединения, но я не могу понять, как это сделать правильно?
fn main() {
let start = [30u8; 5];
let middle = [40u8; 4];
let first = [1u8; 10];
let second = [2u8; 10];
let third = [3u8; 10];
let elements: Vec<[u8; 10]> = vec![first, second, third];
println!("{:?}", elements.iter());
for key in elements.iter() {
println!("{:?}", key.iter());
}
let alltogether: Vec<u8> = start
.iter()
.cloned()
.chain(middle.iter().cloned())
.chain(elements.iter().iter().cloned())
.collect();
println!("{:?}", alltogether);
}
Этот пример можно скопировать на игровую площадку Rust.