in dubbo/src/triple/codec/buffer.rs [104:123]
fn decode_buf() {
let mut payload = BytesMut::with_capacity(100);
payload.put(&vec![0u8; 50][..]);
let mut buf = DecodeBuf::new(&mut payload, 20);
assert_eq!(buf.len, 20);
assert_eq!(buf.remaining(), 20);
assert_eq!(buf.chunk().len(), 20);
buf.advance(10);
assert_eq!(buf.remaining(), 10);
let mut out = [0; 5];
buf.copy_to_slice(&mut out);
assert_eq!(buf.remaining(), 5);
assert_eq!(buf.chunk().len(), 5);
assert_eq!(buf.copy_to_bytes(5).len(), 5);
assert!(!buf.has_remaining());
}