aboutsummaryrefslogtreecommitdiff
path: root/src/buf/uninit_slice.rs
diff options
context:
space:
mode:
authorGravatar Yotam Ofek <yotam.ofek@gmail.com> 2022-10-04 13:23:07 +0300
committerGravatar GitHub <noreply@github.com> 2022-10-04 12:23:07 +0200
commit6e4b1f244b15dc486578103ae2db927bedee2d3e (patch)
tree27cf30493a85802164f33530ca3d57754195dcbe /src/buf/uninit_slice.rs
parenta36f661354a99f8dd14b15acfe69bc16d5505fbe (diff)
downloadbytes-6e4b1f244b15dc486578103ae2db927bedee2d3e.tar.gz
bytes-6e4b1f244b15dc486578103ae2db927bedee2d3e.tar.zst
bytes-6e4b1f244b15dc486578103ae2db927bedee2d3e.zip
Rename and expose `BytesMut::spare_capacity_mut` (#572)
Diffstat (limited to 'src/buf/uninit_slice.rs')
-rw-r--r--src/buf/uninit_slice.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/buf/uninit_slice.rs b/src/buf/uninit_slice.rs
index a6c9ead..3161a14 100644
--- a/src/buf/uninit_slice.rs
+++ b/src/buf/uninit_slice.rs
@@ -22,6 +22,10 @@ use core::ops::{
pub struct UninitSlice([MaybeUninit<u8>]);
impl UninitSlice {
+ pub(crate) fn from_slice(slice: &mut [MaybeUninit<u8>]) -> &mut UninitSlice {
+ unsafe { &mut *(slice as *mut [MaybeUninit<u8>] as *mut UninitSlice) }
+ }
+
/// Create a `&mut UninitSlice` from a pointer and a length.
///
/// # Safety
@@ -44,7 +48,7 @@ impl UninitSlice {
pub unsafe fn from_raw_parts_mut<'a>(ptr: *mut u8, len: usize) -> &'a mut UninitSlice {
let maybe_init: &mut [MaybeUninit<u8>] =
core::slice::from_raw_parts_mut(ptr as *mut _, len);
- &mut *(maybe_init as *mut [MaybeUninit<u8>] as *mut UninitSlice)
+ Self::from_slice(maybe_init)
}
/// Write a single byte at the specified offset.