#![deny(warnings, rust_2018_idioms)] use bytes::Buf; use std::io::IoSlice; #[test] fn test_fresh_cursor_vec() { let mut buf = &b"hello"[..]; assert_eq!(buf.remaining(), 5); assert_eq!(buf.bytes(), b"hello"); buf.advance(2); assert_eq!(buf.remaining(), 3); assert_eq!(buf.bytes(), b"llo"); buf.advance(3); assert_eq!(buf.remaining(), 0); assert_eq!(buf.bytes(), b""); } #[test] fn test_get_u8() { let mut buf = &b"\x21zomg"[..]; assert_eq!(0x21, buf.get_u8()); } #[test] fn test_get_u16() { let mut buf = &b"\x21\x54zomg"[..]; assert_eq!(0x2154, buf.get_u16()); let mut buf = &b"\x21\x54zomg"[..]; assert_eq!(0x5421, buf.get_u16_le()); } #[test] #[should_panic] fn test_get_u16_buffer_underflow() { let mut buf = &b"\x21"[..]; buf.get_u16(); } #[test] fn test_bufs_vec() { let buf = &b"hello world"[..]; let b1: &[u8] = &mut []; let b2: &[u8] = &mut []; let mut dst = [IoSlice::new(b1), IoSlice::new(b2)]; assert_eq!(1, buf.bytes_vectored(&mut dst[..])); }