diff options
Diffstat (limited to 'vendor/rustix/src/buffer.rs')
-rw-r--r-- | vendor/rustix/src/buffer.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/vendor/rustix/src/buffer.rs b/vendor/rustix/src/buffer.rs new file mode 100644 index 0000000..e4b40c7 --- /dev/null +++ b/vendor/rustix/src/buffer.rs @@ -0,0 +1,21 @@ +//! Utilities to help with buffering. + +#![allow(unsafe_code)] + +use core::mem::MaybeUninit; +use core::slice; + +/// Split an uninitialized byte slice into initialized and uninitialized parts. +/// +/// # Safety +/// +/// At least `init` bytes must be initialized. +#[inline] +pub(super) unsafe fn split_init( + buf: &mut [MaybeUninit<u8>], + init: usize, +) -> (&mut [u8], &mut [MaybeUninit<u8>]) { + let (init, uninit) = buf.split_at_mut(init); + let init = slice::from_raw_parts_mut(init.as_mut_ptr() as *mut u8, init.len()); + (init, uninit) +} |