如何从BytesMut移动一系列元素?



我有一个采用BytesMut可变实例的方法。我想将其块移动到 BytesMut 的其他实例中,但不确定这样做的语法。有没有例子?

您可以使用原始 buf 上的范围运算符根据某个偏移值四处移动或split_off。例如:

use bytes::{BufMut, BytesMut};
fn main() {
let mut buf = BytesMut::with_capacity(64);
let mut buf_to = BytesMut::with_capacity(64);
buf.put_u8(b't');
buf.put_u8(b'e');
buf.put_u8(b's');
buf.put_u8(b't');
// move last 2 elements
buf_to.put(&buf[2..]);
println!("{:#?}", buf_to); // b"st"
// You can also split_off the original value
let mut another_buf = buf.split_off(2);
println!("{:#?}", another_buf); // b"st"
println!("{:#?}", buf); // b"te"
}

最新更新