Как повторить или объединить два среза n раз в одной строке через адаптеры? - PullRequest
0 голосов
/ 09 марта 2019

Можно ли выполнить ту же работу с помощью адаптеров iter?

fn mutiply_bytes(buf_in: &[u8], mul: usize) -> Vec<u8> {
    let length = buf_in.len() * mul;
    let mut buf_out = Vec::with_capacity(length);
    for i in 0..length{
        buf_out.push(buf_in[i%buf_in.len()]);
    }
    buf_out
}

1 Ответ

1 голос
/ 09 марта 2019

std :: iter :: repeat может помочь

fn mutiply_bytes(buf_in: &[u8], mul: usize) -> Vec<u8> {
    std::iter::repeat(buf_in)
        .take(mul)
        .flatten()
        .cloned()
        .collect::<Vec<u8>>()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...