We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
split_init
1 parent 8adb366 commit 2bdd66aCopy full SHA for 2bdd66a
1 file changed
src/buffer.rs
@@ -9,13 +9,16 @@ use core::slice;
9
///
10
/// # Safety
11
12
-/// At least `init` bytes must be initialized.
+/// At least `init_len` bytes must be initialized.
13
#[inline]
14
pub(super) unsafe fn split_init(
15
buf: &mut [MaybeUninit<u8>],
16
- init: usize,
+ init_len: usize,
17
) -> (&mut [u8], &mut [MaybeUninit<u8>]) {
18
- let (init, uninit) = buf.split_at_mut(init);
19
- let init = slice::from_raw_parts_mut(init.as_mut_ptr().cast::<u8>(), init.len());
+ debug_assert!(init_len <= buf.len());
+ let buf_ptr = buf.as_mut_ptr();
20
+ let uninit_len = buf.len() - init_len;
21
+ let init = slice::from_raw_parts_mut(buf_ptr.cast::<u8>(), init_len);
22
+ let uninit = slice::from_raw_parts_mut(buf_ptr.add(init_len), uninit_len);
23
(init, uninit)
24
}
0 commit comments