pub trait ReadExt: Read {
Show 62 methods
// Provided methods
fn read_u8(&mut self) -> u8 { ... }
fn read_u8_checked(&mut self) -> Result<u8> { ... }
fn read_f32_ne(&mut self) -> f32 { ... }
fn read_f32_ne_checked(&mut self) -> Result<f32> { ... }
fn read_f32(&mut self) -> f32 { ... }
fn read_f32_checked(&mut self) -> Result<f32> { ... }
fn read_f32_le(&mut self) -> f32 { ... }
fn read_f32_le_checked(&mut self) -> Result<f32> { ... }
fn read_f64_ne(&mut self) -> f64 { ... }
fn read_f64_ne_checked(&mut self) -> Result<f64> { ... }
fn read_f64(&mut self) -> f64 { ... }
fn read_f64_checked(&mut self) -> Result<f64> { ... }
fn read_f64_le(&mut self) -> f64 { ... }
fn read_f64_le_checked(&mut self) -> Result<f64> { ... }
fn read_u16_ne(&mut self) -> u16 { ... }
fn read_u16_ne_checked(&mut self) -> Result<u16> { ... }
fn read_u16(&mut self) -> u16 { ... }
fn read_u16_checked(&mut self) -> Result<u16> { ... }
fn read_u16_le(&mut self) -> u16 { ... }
fn read_u16_le_checked(&mut self) -> Result<u16> { ... }
fn read_i16_ne(&mut self) -> i16 { ... }
fn read_i16_ne_checked(&mut self) -> Result<i16> { ... }
fn read_i16(&mut self) -> i16 { ... }
fn read_i16_checked(&mut self) -> Result<i16> { ... }
fn read_i16_le(&mut self) -> i16 { ... }
fn read_i16_le_checked(&mut self) -> Result<i16> { ... }
fn read_u32_ne(&mut self) -> u32 { ... }
fn read_u32_ne_checked(&mut self) -> Result<u32> { ... }
fn read_u32(&mut self) -> u32 { ... }
fn read_u32_checked(&mut self) -> Result<u32> { ... }
fn read_u32_le(&mut self) -> u32 { ... }
fn read_u32_le_checked(&mut self) -> Result<u32> { ... }
fn read_i32_ne(&mut self) -> i32 { ... }
fn read_i32_ne_checked(&mut self) -> Result<i32> { ... }
fn read_i32(&mut self) -> i32 { ... }
fn read_i32_checked(&mut self) -> Result<i32> { ... }
fn read_i32_le(&mut self) -> i32 { ... }
fn read_i32_le_checked(&mut self) -> Result<i32> { ... }
fn read_u64_ne(&mut self) -> u64 { ... }
fn read_u64_ne_checked(&mut self) -> Result<u64> { ... }
fn read_u64(&mut self) -> u64 { ... }
fn read_u64_checked(&mut self) -> Result<u64> { ... }
fn read_u64_le(&mut self) -> u64 { ... }
fn read_u64_le_checked(&mut self) -> Result<u64> { ... }
fn read_i64_ne(&mut self) -> i64 { ... }
fn read_i64_ne_checked(&mut self) -> Result<i64> { ... }
fn read_i64(&mut self) -> i64 { ... }
fn read_i64_checked(&mut self) -> Result<i64> { ... }
fn read_i64_le(&mut self) -> i64 { ... }
fn read_i64_le_checked(&mut self) -> Result<i64> { ... }
fn read_u128_ne(&mut self) -> u128 { ... }
fn read_u128_ne_checked(&mut self) -> Result<u128> { ... }
fn read_u128(&mut self) -> u128 { ... }
fn read_u128_checked(&mut self) -> Result<u128> { ... }
fn read_u128_le(&mut self) -> u128 { ... }
fn read_u128_le_checked(&mut self) -> Result<u128> { ... }
fn read_i128_ne(&mut self) -> i128 { ... }
fn read_i128_ne_checked(&mut self) -> Result<i128> { ... }
fn read_i128(&mut self) -> i128 { ... }
fn read_i128_checked(&mut self) -> Result<i128> { ... }
fn read_i128_le(&mut self) -> i128 { ... }
fn read_i128_le_checked(&mut self) -> Result<i128> { ... }
}Expand description
§Read extension
All methods at first pull n bytes from reader and then interprets them with specified endianess.
Where n is size of type in bytes.
§Panics
If std::io::Read::read_exact will return an error, ALL methods that doesn’t end with _checked will panic.
All _checked methods will return an error in that case.
§Provided methods:
read_*_ne- Native-endianread_*_be- Big-endianread_*_le- Little-endian
§Example
use io_ext::ReadExt;
let buf = b"\x00\x01\x20\x00";
let mut slice = &buf[..];
// Note: &[u8] implements Read trait
assert_eq!(slice.read_u16(), 1);
assert_eq!(slice.read_i16_le_checked().unwrap(), 0x20 as i16);
// You can handle error on *_checked methods. Others will panic in that canse.
assert!(slice.read_u8_checked().is_err());
// Would panic!
// assert!(slice.read_u8() == 0);