В Go копирование фрагментов выполняется стандартно и выглядит следующим образом:
# It will figure out the details to match slice sizes
dst = copy(dst[n:], src[:m])
В Rust я не смог найти аналогичный метод в качестве замены. Что-то, что я придумал, выглядит так:
fn copy_slice(dst: &mut [u8], src: &[u8]) -> usize {
let mut c = 0;
for (&mut d, &s) in dst.iter_mut().zip(src.iter()) {
d = s;
c += 1;
}
c
}
К сожалению, я получаю эту ошибку компиляции, которую я не могу решить:
error[E0384]: re-assignment of immutable variable 'd'
--> src/main.rs:4:9
|
3 | for (&mut d, &s) in dst.iter_mut().zip(src.iter()) {
| - first assignment to 'd'
4 | d = s;
| ^^^^^ re-assignment of immutable variable
Как я могу установить d
? Есть ли лучший способ скопировать фрагмент?