我有一个10字节的缓冲区:
- 头部:3字节
- 有效载荷:7字节
我有一个较大的有效载荷(in_data: Vec<u8>
),需要将其拆分成块:
let mut buffer = vec![0u8; 10];
for chunk in in_data.chunks(7) {
buffer[3..].copy_from_slice(chunk);
// Do something with each packet.. send to device, etc.
}
如果所有的块都是大小为7,那么这很好,但是当存在余数时,copy_from_slice
会失败,因为块比缓冲区切片小。
我可以添加if语句、检查等等。理想情况下,我希望用零填充缓冲区中的任何剩余空间,但这并不关键。
有没有一种优雅的Rust方式来处理这个问题?