diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /third_party/rust/rustix/src/buffer.rs | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/rustix/src/buffer.rs')
-rw-r--r-- | third_party/rust/rustix/src/buffer.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/third_party/rust/rustix/src/buffer.rs b/third_party/rust/rustix/src/buffer.rs new file mode 100644 index 0000000000..e4b40c7391 --- /dev/null +++ b/third_party/rust/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) +} |