pub trait VecExtendFromReader {
    // Required methods
    fn extend_from_reader<R: ReadIntoUninit>(
        &mut self,
        max_count: usize,
        reader: R
    ) -> Result<usize>;
    fn extend_from_reader_exact<R: ReadIntoUninit>(
        &mut self,
        exact_count: usize,
        reader: R
    ) -> Result<()>;
}
Available on (crate features alloc or std) and crate feature std only.
Expand description

Extension trait for Vec, that grows the vec by a bounded amount of bytes, obtained when reading from R.

This guarantees that the allocated memory starts uninitialized (before being initialized by the read), for maximum performance.

Example

use ::uninit::read::VecExtendFromReader;

let mut reader = &b"World!"[..];
let mut vec = b"Greetings, ".to_vec();
vec.extend_from_reader_exact(6, &mut reader).unwrap();
assert_eq!(
    vec,
    b"Greetings, World!",
);

Required Methods§

source

fn extend_from_reader<R: ReadIntoUninit>( &mut self, max_count: usize, reader: R ) -> Result<usize>

Tries to extends the Vec with up to max_count bytes read from reader.

source

fn extend_from_reader_exact<R: ReadIntoUninit>( &mut self, exact_count: usize, reader: R ) -> Result<()>

Tries to extends the Vec with exactly exact_count bytes read from reader.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl VecExtendFromReader for Vec<u8>

source§

fn extend_from_reader<R: ReadIntoUninit>( &mut self, max_count: usize, reader: R ) -> Result<usize>

source§

fn extend_from_reader_exact<R: ReadIntoUninit>( &mut self, exact_count: usize, reader: R ) -> Result<()>

Implementors§