mirror of
https://github.com/rosenpass/rosenpass.git
synced 2026-02-28 06:23:08 -08:00
foo
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
//! Extension traits for converting `Ref<B, T>` into references backed by
|
||||
//! standard slices.
|
||||
|
||||
use zerocopy::{ByteSlice, ByteSliceMut, Ref};
|
||||
use zerocopy::{SplitByteSlice, SplitByteSliceMut, Immutable, KnownLayout, Ref};
|
||||
|
||||
/// A trait for converting a `Ref<B, T>` into a `Ref<&[u8], T>`.
|
||||
///
|
||||
@@ -16,7 +16,7 @@ pub trait ZerocopyEmancipateExt<B, T> {
|
||||
///
|
||||
/// ```
|
||||
/// # use std::ops::Deref;
|
||||
/// # use zerocopy::{AsBytes, ByteSlice, FromBytes, FromZeroes, Ref};
|
||||
/// # use zerocopy::{AsBytes, SplitByteSlice, FromBytes, FromZeroes, Ref};
|
||||
/// # use rosenpass_util::zerocopy::ZerocopyEmancipateExt;
|
||||
/// #[derive(FromBytes, FromZeroes, AsBytes)]
|
||||
/// #[repr(C)]
|
||||
@@ -64,18 +64,20 @@ pub trait ZerocopyEmancipateMutExt<B, T> {
|
||||
|
||||
impl<B, T> ZerocopyEmancipateExt<B, T> for Ref<B, T>
|
||||
where
|
||||
B: ByteSlice,
|
||||
B: SplitByteSlice,
|
||||
T: KnownLayout + Immutable,
|
||||
{
|
||||
fn emancipate(&self) -> Ref<&[u8], T> {
|
||||
Ref::new(self.bytes()).unwrap()
|
||||
Ref::new(zerocopy::Ref::<B, T>::bytes(&self)).unwrap()
|
||||
}
|
||||
}
|
||||
|
||||
impl<B, T> ZerocopyEmancipateMutExt<B, T> for Ref<B, T>
|
||||
where
|
||||
B: ByteSliceMut,
|
||||
B: SplitByteSliceMut,
|
||||
T: KnownLayout + Immutable,
|
||||
{
|
||||
fn emancipate_mut(&mut self) -> Ref<&mut [u8], T> {
|
||||
Ref::new(self.bytes_mut()).unwrap()
|
||||
Ref::new(zerocopy::Ref::<B, T>::bytes_mut(self)).unwrap()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user