Skip to main content

Cursor

Struct Cursor 

Source
pub struct Cursor<T> { /* private fields */ }
๐Ÿ”ฌThis is a nightly-only experimental API. (core_io)
Expand description

A Cursor wraps an in-memory buffer and provides it with a Seek implementation.

Cursors are used with in-memory buffers, anything implementing AsRef<[u8]>, to allow them to implement Read and/or Write, allowing these buffers to be used anywhere you might use a reader or writer that does actual I/O.

The standard library implements some I/O traits on various types which are commonly used as a buffer, like Cursor<Vec<u8>> and Cursor<&[u8]>.

ยงExamples

We may want to write bytes to a File in our production code, but use an in-memory buffer in our tests. We can do this with Cursor:

use std::io::prelude::*;
use std::io::{self, SeekFrom};
use std::fs::File;

// a library function we've written
fn write_ten_bytes_at_end<W: Write + Seek>(mut writer: W) -> io::Result<()> {
    writer.seek(SeekFrom::End(-10))?;

    for i in 0..10 {
        writer.write(&[i])?;
    }

    // all went well
    Ok(())
}

// Here's some code that uses this library function.
//
// We might want to use a BufReader here for efficiency, but let's
// keep this example focused.
let mut file = File::create("foo.txt")?;
// First, we need to allocate 10 bytes to be able to write into.
file.set_len(10)?;

write_ten_bytes_at_end(&mut file)?;

// now let's write a test
#[test]
fn test_writes_bytes() {
    // setting up a real File is much slower than an in-memory buffer,
    // let's use a cursor instead
    use std::io::Cursor;
    let mut buff = Cursor::new(vec![0; 15]);

    write_ten_bytes_at_end(&mut buff).unwrap();

    assert_eq!(&buff.get_ref()[5..15], &[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
}

Implementationsยง

Sourceยง

impl<T> Cursor<T>

1.0.0 (const: 1.79.0) ยท Source

pub const fn new(inner: T) -> Cursor<T> โ“˜

Creates a new cursor wrapping the provided underlying in-memory buffer.

Cursor initial position is 0 even if underlying buffer (e.g., Vec) is not empty. So writing to cursor starts with overwriting Vec content, not with appending to it.

ยงExamples
use std::io::Cursor;

let buff = Cursor::new(Vec::new());
1.0.0 ยท Source

pub fn into_inner(self) -> T

Consumes this cursor, returning the underlying value.

ยงExamples
use std::io::Cursor;

let buff = Cursor::new(Vec::new());

let vec = buff.into_inner();
1.0.0 (const: 1.79.0) ยท Source

pub const fn get_ref(&self) -> &T

Gets a reference to the underlying value in this cursor.

ยงExamples
use std::io::Cursor;

let buff = Cursor::new(Vec::new());

let reference = buff.get_ref();
1.0.0 (const: 1.86.0) ยท Source

pub const fn get_mut(&mut self) -> &mut T

Gets a mutable reference to the underlying value in this cursor.

Care should be taken to avoid modifying the internal I/O state of the underlying value as it may corrupt this cursorโ€™s position.

ยงExamples
use std::io::Cursor;

let mut buff = Cursor::new(Vec::new());

let reference = buff.get_mut();
1.0.0 (const: 1.79.0) ยท Source

pub const fn position(&self) -> u64

Returns the current position of this cursor.

ยงExamples
use std::io::Cursor;
use std::io::prelude::*;
use std::io::SeekFrom;

let mut buff = Cursor::new(vec![1, 2, 3, 4, 5]);

assert_eq!(buff.position(), 0);

buff.seek(SeekFrom::Current(2)).unwrap();
assert_eq!(buff.position(), 2);

buff.seek(SeekFrom::Current(-1)).unwrap();
assert_eq!(buff.position(), 1);
1.0.0 (const: 1.86.0) ยท Source

pub const fn set_position(&mut self, pos: u64)

Sets the position of this cursor.

ยงExamples
use std::io::Cursor;

let mut buff = Cursor::new(vec![1, 2, 3, 4, 5]);

assert_eq!(buff.position(), 0);

buff.set_position(2);
assert_eq!(buff.position(), 2);

buff.set_position(4);
assert_eq!(buff.position(), 4);
Sourceยง

impl<T> Cursor<T>
where T: AsRef<[u8]>,

Source

pub fn split(&self) -> (&[u8], &[u8])

๐Ÿ”ฌThis is a nightly-only experimental API. (cursor_split)

Splits the underlying slice at the cursor position and returns them.

ยงExamples
#![feature(cursor_split)]
use std::io::Cursor;

let mut buff = Cursor::new(vec![1, 2, 3, 4, 5]);

assert_eq!(buff.split(), ([].as_slice(), [1, 2, 3, 4, 5].as_slice()));

buff.set_position(2);
assert_eq!(buff.split(), ([1, 2].as_slice(), [3, 4, 5].as_slice()));

buff.set_position(6);
assert_eq!(buff.split(), ([1, 2, 3, 4, 5].as_slice(), [].as_slice()));
Sourceยง

impl<T> Cursor<T>
where T: AsMut<[u8]>,

Source

pub fn split_mut(&mut self) -> (&mut [u8], &mut [u8])

๐Ÿ”ฌThis is a nightly-only experimental API. (cursor_split)

Splits the underlying slice at the cursor position and returns them mutably.

ยงExamples
#![feature(cursor_split)]
use std::io::Cursor;

let mut buff = Cursor::new(vec![1, 2, 3, 4, 5]);

assert_eq!(buff.split_mut(), ([].as_mut_slice(), [1, 2, 3, 4, 5].as_mut_slice()));

buff.set_position(2);
assert_eq!(buff.split_mut(), ([1, 2].as_mut_slice(), [3, 4, 5].as_mut_slice()));

buff.set_position(6);
assert_eq!(buff.split_mut(), ([1, 2, 3, 4, 5].as_mut_slice(), [].as_mut_slice()));

Trait Implementationsยง

1.0.0 ยท Sourceยง

impl<T> BufRead for Cursor<T>
where T: AsRef<[u8]>,

Sourceยง

fn fill_buf(&mut self) -> Result<&[u8], Error>

Returns the contents of the internal buffer, filling it with more data, via Read methods, if empty. Read more
Sourceยง

fn consume(&mut self, amt: usize)

Marks the given amount of additional bytes from the internal buffer as having been read. Subsequent calls to read only return bytes that have not been marked as read. Read more
Sourceยง

fn has_data_left(&mut self) -> Result<bool, Error>

๐Ÿ”ฌThis is a nightly-only experimental API. (buf_read_has_data_left)
Checks if there is any data left to be read. Read more
1.0.0 ยท Sourceยง

fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>

Reads all bytes into buf until the delimiter byte or EOF is reached. Read more
1.83.0 ยท Sourceยง

fn skip_until(&mut self, byte: u8) -> Result<usize, Error>

Skips all bytes until the delimiter byte or EOF is reached. Read more
1.0.0 ยท Sourceยง

fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>

Reads all bytes until a newline (the 0xA byte) is reached, and append them to the provided String buffer. Read more
1.0.0 ยท Sourceยง

fn split(self, byte: u8) -> Split<Self> โ“˜
where Self: Sized,

Returns an iterator over the contents of this reader split on the byte byte. Read more
1.0.0 ยท Sourceยง

fn lines(self) -> Lines<Self> โ“˜
where Self: Sized,

Returns an iterator over the lines of this reader. Read more
1.0.0 ยท Sourceยง

impl<T> Clone for Cursor<T>
where T: Clone,

Sourceยง

fn clone(&self) -> Cursor<T> โ“˜

Returns a duplicate of the value. Read more
Sourceยง

fn clone_from(&mut self, other: &Cursor<T>)

Performs copy-assignment from source. Read more
1.0.0 ยท Sourceยง

impl<T> Debug for Cursor<T>
where T: Debug,

Sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
1.0.0 ยท Sourceยง

impl<T> Default for Cursor<T>
where T: Default,

Sourceยง

fn default() -> Cursor<T> โ“˜

Returns the โ€œdefault valueโ€ for a type. Read more
1.0.0 ยท Sourceยง

impl<T> Eq for Cursor<T>
where T: Eq,

1.0.0 ยท Sourceยง

impl<T> PartialEq for Cursor<T>
where T: PartialEq,

Sourceยง

fn eq(&self, other: &Cursor<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) ยท Sourceยง

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
1.0.0 ยท Sourceยง

impl<T> Read for Cursor<T>
where T: AsRef<[u8]>,

Sourceยง

fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>

Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
Sourceยง

fn read_buf(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

๐Ÿ”ฌThis is a nightly-only experimental API. (read_buf)
Pull some bytes from this source into the specified buffer. Read more
Sourceยง

fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>

Like read, except that it reads into a slice of buffers. Read more
Sourceยง

fn is_read_vectored(&self) -> bool

๐Ÿ”ฌThis is a nightly-only experimental API. (can_vector)
Determines if this Reader has an efficient read_vectored implementation. Read more
Sourceยง

fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

Reads the exact number of bytes required to fill buf. Read more
Sourceยง

fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

๐Ÿ”ฌThis is a nightly-only experimental API. (read_buf)
Reads the exact number of bytes required to fill cursor. Read more
Sourceยง

fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

Reads all bytes until EOF in this source, placing them into buf. Read more
Sourceยง

fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

Reads all bytes until EOF in this source, appending them to buf. Read more
1.0.0 ยท Sourceยง

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a โ€œby referenceโ€ adapter for this instance of Read. Read more
1.0.0 ยท Sourceยง

fn bytes(self) -> Bytes<Self> โ“˜
where Self: Sized,

Transforms this Read instance to an Iterator over its bytes. Read more
1.0.0 ยท Sourceยง

fn chain<R>(self, next: R) -> Chain<Self, R> โ“˜
where R: Read, Self: Sized,

Creates an adapter which will chain this stream with another. Read more
1.0.0 ยท Sourceยง

fn take(self, limit: u64) -> Take<Self> โ“˜
where Self: Sized,

Creates an adapter which will read at most limit bytes from it. Read more
Sourceยง

fn read_array<const N: usize>(&mut self) -> Result<[u8; N], Error>
where Self: Sized,

๐Ÿ”ฌThis is a nightly-only experimental API. (read_array)
Read and return a fixed array of bytes from this source. Read more
1.0.0 ยท Sourceยง

impl<T> Seek for Cursor<T>
where T: AsRef<[u8]>,

Sourceยง

fn seek(&mut self, style: SeekFrom) -> Result<u64, Error>

Seek to an offset, in bytes, in a stream. Read more
Sourceยง

fn stream_len(&mut self) -> Result<u64, Error>

๐Ÿ”ฌThis is a nightly-only experimental API. (seek_stream_len)
Returns the length of this stream (in bytes). Read more
Sourceยง

fn stream_position(&mut self) -> Result<u64, Error>

Returns the current seek position from the start of the stream. Read more
1.55.0 ยท Sourceยง

fn rewind(&mut self) -> Result<(), Error>

Rewind to the beginning of a stream. Read more
1.80.0 ยท Sourceยง

fn seek_relative(&mut self, offset: i64) -> Result<(), Error>

Seeks relative to the current position. Read more
1.0.0 ยท Sourceยง

impl<T> StructuralPartialEq for Cursor<T>

1.0.0 ยท Sourceยง

impl Write for Cursor<&mut [u8]>

Sourceยง

fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

Writes a buffer into this writer, returning how many bytes were written. Read more
Sourceยง

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
Sourceยง

fn is_write_vectored(&self) -> bool

๐Ÿ”ฌThis is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
Sourceยง

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
Sourceยง

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

๐Ÿ”ฌThis is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
Sourceยง

fn flush(&mut self) -> Result<(), Error>

Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
1.0.0 ยท Sourceยง

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 ยท Sourceยง

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a โ€œby referenceโ€ adapter for this instance of Write. Read more
1.25.0 ยท Sourceยง

impl<A> Write for Cursor<&mut Vec<u8, A>>
where A: Allocator,

Sourceยง

fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

Writes a buffer into this writer, returning how many bytes were written. Read more
Sourceยง

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
Sourceยง

fn is_write_vectored(&self) -> bool

๐Ÿ”ฌThis is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
Sourceยง

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
Sourceยง

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

๐Ÿ”ฌThis is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
Sourceยง

fn flush(&mut self) -> Result<(), Error>

Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
1.0.0 ยท Sourceยง

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 ยท Sourceยง

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a โ€œby referenceโ€ adapter for this instance of Write. Read more
1.0.0 ยท Sourceยง

impl<A> Write for Cursor<Vec<u8, A>>
where A: Allocator,

Sourceยง

fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

Writes a buffer into this writer, returning how many bytes were written. Read more
Sourceยง

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
Sourceยง

fn is_write_vectored(&self) -> bool

๐Ÿ”ฌThis is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
Sourceยง

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
Sourceยง

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

๐Ÿ”ฌThis is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
Sourceยง

fn flush(&mut self) -> Result<(), Error>

Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
1.0.0 ยท Sourceยง

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 ยท Sourceยง

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a โ€œby referenceโ€ adapter for this instance of Write. Read more
1.5.0 ยท Sourceยง

impl<A> Write for Cursor<Box<[u8], A>>
where A: Allocator,

Sourceยง

fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

Writes a buffer into this writer, returning how many bytes were written. Read more
Sourceยง

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
Sourceยง

fn is_write_vectored(&self) -> bool

๐Ÿ”ฌThis is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
Sourceยง

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
Sourceยง

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

๐Ÿ”ฌThis is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
Sourceยง

fn flush(&mut self) -> Result<(), Error>

Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
1.0.0 ยท Sourceยง

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 ยท Sourceยง

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a โ€œby referenceโ€ adapter for this instance of Write. Read more
1.61.0 ยท Sourceยง

impl<const N: usize> Write for Cursor<[u8; N]>

Sourceยง

fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

Writes a buffer into this writer, returning how many bytes were written. Read more
Sourceยง

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
Sourceยง

fn is_write_vectored(&self) -> bool

๐Ÿ”ฌThis is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
Sourceยง

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
Sourceยง

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

๐Ÿ”ฌThis is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
Sourceยง

fn flush(&mut self) -> Result<(), Error>

Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
1.0.0 ยท Sourceยง

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 ยท Sourceยง

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a โ€œby referenceโ€ adapter for this instance of Write. Read more

Auto Trait Implementationsยง

ยง

impl<T> Freeze for Cursor<T>
where T: Freeze,

ยง

impl<T> RefUnwindSafe for Cursor<T>
where T: RefUnwindSafe,

ยง

impl<T> Send for Cursor<T>
where T: Send,

ยง

impl<T> Sync for Cursor<T>
where T: Sync,

ยง

impl<T> Unpin for Cursor<T>
where T: Unpin,

ยง

impl<T> UnsafeUnpin for Cursor<T>
where T: UnsafeUnpin,

ยง

impl<T> UnwindSafe for Cursor<T>
where T: UnwindSafe,

Blanket Implementationsยง

Sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

Sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

Sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

Sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Sourceยง

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Sourceยง

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Sourceยง

impl<T> CloneToUninit for T
where T: Clone,

Sourceยง

unsafe fn clone_to_uninit(&self, dest: *mut u8)

๐Ÿ”ฌThis is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Sourceยง

impl<T> From<T> for T

Sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

Sourceยง

impl<T, U> Into<U> for T
where U: From<T>,

Sourceยง

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Sourceยง

impl<T> IntoEither for T

Sourceยง

fn into_either(self, into_left: bool) -> Either<Self, Self> โ“˜

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Sourceยง

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> โ“˜
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Sourceยง

impl<T> Pointable for T

Sourceยง

const ALIGN: usize

The alignment of pointer.
Sourceยง

type Init = T

The type for initializers.
Sourceยง

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Sourceยง

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Sourceยง

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Sourceยง

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Sourceยง

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Sourceยง

impl<R> ReadBytesExt for R
where R: Read + ?Sized,

Sourceยง

fn read_u8(&mut self) -> Result<u8, Error>

Reads an unsigned 8 bit integer from the underlying reader. Read more
Sourceยง

fn read_i8(&mut self) -> Result<i8, Error>

Reads a signed 8 bit integer from the underlying reader. Read more
Sourceยง

fn read_u16<T>(&mut self) -> Result<u16, Error>
where T: ByteOrder,

Reads an unsigned 16 bit integer from the underlying reader. Read more
Sourceยง

fn read_i16<T>(&mut self) -> Result<i16, Error>
where T: ByteOrder,

Reads a signed 16 bit integer from the underlying reader. Read more
Sourceยง

fn read_u24<T>(&mut self) -> Result<u32, Error>
where T: ByteOrder,

Reads an unsigned 24 bit integer from the underlying reader. Read more
Sourceยง

fn read_i24<T>(&mut self) -> Result<i32, Error>
where T: ByteOrder,

Reads a signed 24 bit integer from the underlying reader. Read more
Sourceยง

fn read_u32<T>(&mut self) -> Result<u32, Error>
where T: ByteOrder,

Reads an unsigned 32 bit integer from the underlying reader. Read more
Sourceยง

fn read_i32<T>(&mut self) -> Result<i32, Error>
where T: ByteOrder,

Reads a signed 32 bit integer from the underlying reader. Read more
Sourceยง

fn read_u48<T>(&mut self) -> Result<u64, Error>
where T: ByteOrder,

Reads an unsigned 48 bit integer from the underlying reader. Read more
Sourceยง

fn read_i48<T>(&mut self) -> Result<i64, Error>
where T: ByteOrder,

Reads a signed 48 bit integer from the underlying reader. Read more
Sourceยง

fn read_u64<T>(&mut self) -> Result<u64, Error>
where T: ByteOrder,

Reads an unsigned 64 bit integer from the underlying reader. Read more
Sourceยง

fn read_i64<T>(&mut self) -> Result<i64, Error>
where T: ByteOrder,

Reads a signed 64 bit integer from the underlying reader. Read more
Sourceยง

fn read_u128<T>(&mut self) -> Result<u128, Error>
where T: ByteOrder,

Reads an unsigned 128 bit integer from the underlying reader. Read more
Sourceยง

fn read_i128<T>(&mut self) -> Result<i128, Error>
where T: ByteOrder,

Reads a signed 128 bit integer from the underlying reader. Read more
Sourceยง

fn read_uint<T>(&mut self, nbytes: usize) -> Result<u64, Error>
where T: ByteOrder,

Reads an unsigned n-bytes integer from the underlying reader. Read more
Sourceยง

fn read_int<T>(&mut self, nbytes: usize) -> Result<i64, Error>
where T: ByteOrder,

Reads a signed n-bytes integer from the underlying reader. Read more
Sourceยง

fn read_uint128<T>(&mut self, nbytes: usize) -> Result<u128, Error>
where T: ByteOrder,

Reads an unsigned n-bytes integer from the underlying reader.
Sourceยง

fn read_int128<T>(&mut self, nbytes: usize) -> Result<i128, Error>
where T: ByteOrder,

Reads a signed n-bytes integer from the underlying reader.
Sourceยง

fn read_f32<T>(&mut self) -> Result<f32, Error>
where T: ByteOrder,

Reads a IEEE754 single-precision (4 bytes) floating point number from the underlying reader. Read more
Sourceยง

fn read_f64<T>(&mut self) -> Result<f64, Error>
where T: ByteOrder,

Reads a IEEE754 double-precision (8 bytes) floating point number from the underlying reader. Read more
Sourceยง

impl<R> ReadEndian<[f32]> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut [f32], ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut [f32]) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<[f64]> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut [f64], ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut [f64]) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<[i8]> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut [i8], ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut [i8]) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<[i16]> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut [i16], ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut [i16]) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<[i32]> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut [i32], ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut [i32]) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<[i64]> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut [i64], ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut [i64]) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<[i128]> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut [i128], ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut [i128]) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<[u8]> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut [u8], ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut [u8]) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<[u16]> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut [u16], ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut [u16]) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<[u32]> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut [u32], ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut [u32]) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<[u64]> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut [u64], ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut [u64]) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<[u128]> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut [u128], ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut [u128]) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<f32> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into(&mut self, value: &mut f32) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut f32) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<f64> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into(&mut self, value: &mut f64) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut f64) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<i8> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into(&mut self, value: &mut i8) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut i8) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<i16> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into(&mut self, value: &mut i16) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut i16) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<i32> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into(&mut self, value: &mut i32) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut i32) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<i64> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into(&mut self, value: &mut i64) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut i64) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<i128> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut i128, ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut i128) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<u8> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into(&mut self, value: &mut u8) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut u8) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<u16> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into(&mut self, value: &mut u16) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut u16) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<u32> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into(&mut self, value: &mut u32) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut u32) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<u64> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into(&mut self, value: &mut u64) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut u64) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R> ReadEndian<u128> for R
where R: Read,

Sourceยง

fn read_from_little_endian_into( &mut self, value: &mut u128, ) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_big_endian_into(&mut self, value: &mut u128) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<(), Error>

Read into the supplied reference. Acts the same as std::io::Read::read_exact.
Sourceยง

fn read_from_little_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_big_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

fn read_from_native_endian(&mut self) -> Result<T, Error>
where T: Sized + Default,

Read the byte value of the inferred type
Sourceยง

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Sourceยง

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Sourceยง

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Sourceยง

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Sourceยง

impl<T> ToOwned for T
where T: Clone,

Sourceยง

type Owned = T

The resulting type after obtaining ownership.
Sourceยง

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Sourceยง

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Sourceยง

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Sourceยง

type Error = Infallible

The type returned in the event of a conversion error.
Sourceยง

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Sourceยง

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Sourceยง

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Sourceยง

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Sourceยง

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Sourceยง

fn vzip(self) -> V

Sourceยง

impl<W> WriteBytesExt for W
where W: Write + ?Sized,

Sourceยง

fn write_u8(&mut self, n: u8) -> Result<(), Error>

Writes an unsigned 8 bit integer to the underlying writer. Read more
Sourceยง

fn write_i8(&mut self, n: i8) -> Result<(), Error>

Writes a signed 8 bit integer to the underlying writer. Read more
Sourceยง

fn write_u16<T>(&mut self, n: u16) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned 16 bit integer to the underlying writer. Read more
Sourceยง

fn write_i16<T>(&mut self, n: i16) -> Result<(), Error>
where T: ByteOrder,

Writes a signed 16 bit integer to the underlying writer. Read more
Sourceยง

fn write_u24<T>(&mut self, n: u32) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned 24 bit integer to the underlying writer. Read more
Sourceยง

fn write_i24<T>(&mut self, n: i32) -> Result<(), Error>
where T: ByteOrder,

Writes a signed 24 bit integer to the underlying writer. Read more
Sourceยง

fn write_u32<T>(&mut self, n: u32) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned 32 bit integer to the underlying writer. Read more
Sourceยง

fn write_i32<T>(&mut self, n: i32) -> Result<(), Error>
where T: ByteOrder,

Writes a signed 32 bit integer to the underlying writer. Read more
Sourceยง

fn write_u48<T>(&mut self, n: u64) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned 48 bit integer to the underlying writer. Read more
Sourceยง

fn write_i48<T>(&mut self, n: i64) -> Result<(), Error>
where T: ByteOrder,

Writes a signed 48 bit integer to the underlying writer. Read more
Sourceยง

fn write_u64<T>(&mut self, n: u64) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned 64 bit integer to the underlying writer. Read more
Sourceยง

fn write_i64<T>(&mut self, n: i64) -> Result<(), Error>
where T: ByteOrder,

Writes a signed 64 bit integer to the underlying writer. Read more
Sourceยง

fn write_u128<T>(&mut self, n: u128) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned 128 bit integer to the underlying writer.
Sourceยง

fn write_i128<T>(&mut self, n: i128) -> Result<(), Error>
where T: ByteOrder,

Writes a signed 128 bit integer to the underlying writer.
Sourceยง

fn write_uint<T>(&mut self, n: u64, nbytes: usize) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned n-bytes integer to the underlying writer. Read more
Sourceยง

fn write_int<T>(&mut self, n: i64, nbytes: usize) -> Result<(), Error>
where T: ByteOrder,

Writes a signed n-bytes integer to the underlying writer. Read more
Sourceยง

fn write_uint128<T>(&mut self, n: u128, nbytes: usize) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned n-bytes integer to the underlying writer. Read more
Sourceยง

fn write_int128<T>(&mut self, n: i128, nbytes: usize) -> Result<(), Error>
where T: ByteOrder,

Writes a signed n-bytes integer to the underlying writer. Read more
Sourceยง

fn write_f32<T>(&mut self, n: f32) -> Result<(), Error>
where T: ByteOrder,

Writes a IEEE754 single-precision (4 bytes) floating point number to the underlying writer. Read more
Sourceยง

fn write_f64<T>(&mut self, n: f64) -> Result<(), Error>
where T: ByteOrder,

Writes a IEEE754 double-precision (8 bytes) floating point number to the underlying writer. Read more
Sourceยง

impl<W> WriteEndian<[f32]> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &[f32]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &[f32]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<[f64]> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &[f64]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &[f64]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<[i8]> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &[i8]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &[i8]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<[i16]> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &[i16]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &[i16]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<[i32]> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &[i32]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &[i32]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<[i64]> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &[i64]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &[i64]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<[i128]> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &[i128]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &[i128]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<[u8]> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &[u8]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &[u8]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<[u16]> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &[u16]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &[u16]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<[u32]> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &[u32]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &[u32]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<[u64]> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &[u64]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &[u64]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<[u128]> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &[u128]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &[u128]) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<f32> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &f32) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &f32) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<f64> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &f64) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &f64) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<i8> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &i8) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &i8) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<i16> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &i16) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &i16) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<i32> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &i32) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &i32) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<i64> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &i64) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &i64) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<i128> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &i128) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &i128) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<u8> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &u8) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &u8) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<u16> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &u16) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &u16) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<u32> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &u32) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &u32) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<u64> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &u64) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &u64) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<W> WriteEndian<u128> for W
where W: Write,

Sourceยง

fn write_as_little_endian(&mut self, value: &u128) -> Result<(), Error>

Write the byte value of the specified reference, converting it to little endianness
Sourceยง

fn write_as_big_endian(&mut self, value: &u128) -> Result<(), Error>

Write the byte value of the specified reference, converting it to big endianness
Sourceยง

fn write_as_native_endian(&mut self, value: &T) -> Result<(), Error>

Write the byte value of the specified reference, not converting it
Sourceยง

impl<T> ZByteReaderTrait for T
where T: BufRead + Seek,

Sourceยง

fn read_byte_no_error(&mut self) -> u8

Read a single byte from the decoder and return 0 if we canโ€™t read the byte, e.g because of EOF Read more
Sourceยง

fn read_exact_bytes(&mut self, buf: &mut [u8]) -> Result<(), ZByteIoError>

Read exact bytes required to fill buf or return an error if that isnโ€™t possible Read more
Sourceยง

fn read_const_bytes<const N: usize>( &mut self, buf: &mut [u8; N], ) -> Result<(), ZByteIoError>

Read exact bytes required to fill buf or return an error if that isnโ€™t possible Read more
Sourceยง

fn read_const_bytes_no_error<const N: usize>(&mut self, buf: &mut [u8; N])

Read exact bytes required to fill buf or ignore buf entirely if you canโ€™t fill it due to an error like the inability to fill the buffer completely Read more
Sourceยง

fn read_bytes(&mut self, buf: &mut [u8]) -> Result<usize, ZByteIoError>

Read bytes into buf returning how many bytes you have read or an error if one occurred Read more
Sourceยง

fn peek_bytes(&mut self, buf: &mut [u8]) -> Result<usize, ZByteIoError>

Reads data into provided buffer but does not advance read position.
Sourceยง

fn peek_exact_bytes(&mut self, buf: &mut [u8]) -> Result<(), ZByteIoError>

Sourceยง

fn z_seek(&mut self, from: ZSeekFrom) -> Result<u64, ZByteIoError>

Seek into a new position from the buffer Read more
Sourceยง

fn is_eof(&mut self) -> Result<bool, ZByteIoError>

Report whether we are at the end of a stream. Read more
Sourceยง

fn z_position(&mut self) -> Result<u64, ZByteIoError>

Return the current position of the inner cursor. Read more
Sourceยง

fn read_remaining(&mut self, sink: &mut Vec<u8>) -> Result<usize, ZByteIoError>

Read all bytes remaining in this input to sink until we hit eof Read more
Sourceยง

impl<T> ZByteWriterTrait for T
where T: Write,

Sourceยง

fn write_bytes(&mut self, buf: &[u8]) -> Result<usize, ZByteIoError>

Write some bytes into the sink returning number of bytes written or an error if something bad happened Read more
Sourceยง

fn write_all_bytes(&mut self, buf: &[u8]) -> Result<(), ZByteIoError>

Write all bytes to the buffer or return an error if something occurred Read more
Sourceยง

fn write_const_bytes<const N: usize>( &mut self, buf: &[u8; N], ) -> Result<(), ZByteIoError>

Write a fixed number of bytes and error out if we canโ€™t write the bytes Read more
Sourceยง

fn flush_bytes(&mut self) -> Result<(), ZByteIoError>

Ensure bytes are written to the sink. Read more
Sourceยง

fn reserve_capacity(&mut self, _: usize) -> Result<(), ZByteIoError>

A hint to tell the implementation how big of a size we expect the image to be An implementation like in memory Vec can use this to reserve additional memory to prevent reallocation when encoding Read more