From 1b6a04ca5504955c571d1c97504fb45ea0befee4 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Mon, 8 Jan 2024 01:21:28 +0400 Subject: Initial vendor packages Signed-off-by: Valentin Popov --- vendor/rustix/src/buffer.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 vendor/rustix/src/buffer.rs (limited to 'vendor/rustix/src/buffer.rs') 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], + init: usize, +) -> (&mut [u8], &mut [MaybeUninit]) { + 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) +} -- cgit v1.2.3