[−][src]Trait uninit::ReadIntoUninit
Trait for a Readable
type that can output the bytes read into
uninitialised memory.
Safety
The trait is marked unsafe because it needs to guarantee that:
-
if let Ok(init_buf) = self.read_into_uninit(buf), theninit_bufis a prefix slice ofbuf.-
this property is equivalent to:
init_buf.as_mut_ptr() == buf.as_mut_ptr() as *mut u8andinit_buf.len() <= buf.len() -
as well as:
buf[.. init_buf.len()]is sound toassume_init
-
unsafe code can assume this property to skip checks or manual
initialization, and that's why incorrectly impl-ementing this marker
trait can compromise memory safety.
Required methods
fn read_into_uninit<'buf>(
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>
"Read into uninitialized memory" logic.
Provided methods
fn read_into_uninit_exact<'buf>(
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>
"Read into uninitialized memory" logic.
Implementations on Foreign Types
impl<'_, R: ReadIntoUninit + ?Sized> ReadIntoUninit for &'_ mut R[src]
fn read_into_uninit<'buf>(
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>[src]
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>
impl<'_> ReadIntoUninit for &'_ [u8][src]
fn read_into_uninit<'buf>(
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>[src]
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>
impl<R: Read> ReadIntoUninit for BufReader<R>[src]
fn read_into_uninit<'buf>(
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>[src]
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>
impl<T: AsRef<[u8]>> ReadIntoUninit for Cursor<T>[src]
fn read_into_uninit<'buf>(
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>[src]
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>
impl ReadIntoUninit for Empty[src]
fn read_into_uninit<'buf>(
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>[src]
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>
impl<'_> ReadIntoUninit for StdinLock<'_>[src]
fn read_into_uninit<'buf>(
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>[src]
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>
impl<T: BufRead> ReadIntoUninit for Take<T>[src]
fn read_into_uninit<'buf>(
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>[src]
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>
impl<R: ReadIntoUninit + ?Sized> ReadIntoUninit for Box<R>[src]
fn read_into_uninit<'buf>(
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>[src]
&mut self,
buf: &'buf mut [MaybeUninit<u8>]
) -> Result<&'buf mut [u8]>