pub struct Ref<'a, T: ?Sized> { /* private fields */ }Implementations§
Source§impl<'a> Ref<'a, [u8]>
impl<'a> Ref<'a, [u8]>
Sourcepub unsafe fn project<U: ?Sized>(self, ptr: *const U) -> Ref<'a, U>
pub unsafe fn project<U: ?Sized>(self, ptr: *const U) -> Ref<'a, U>
Project a byte borrow into another typed view over the same
underlying bytes. The new guard owns the same release mechanics
. when the returned Ref<U> drops, the underlying account
borrow is released exactly as if the original byte borrow had
dropped.
§Safety
ptr must point inside the byte slice that this Ref<[u8]>
guards (offset bounds checked by the caller), the pointee must
be valid U for any bit pattern (U: Pod-style), and no
alignment beyond the source slice’s may be assumed for U. The
returned Ref<U> inherits the source guard’s lifetime, so the
account stays read-borrowed for as long as the typed view lives.
Sourcepub fn slice_from(self, offset: usize) -> Ref<'a, [u8]>
pub fn slice_from(self, offset: usize) -> Ref<'a, [u8]>
Narrow a shared byte-slice borrow to a tail starting at offset.
Sourcepub fn slice(
self,
offset: usize,
len: usize,
) -> Result<Ref<'a, [u8]>, ProgramError>
pub fn slice( self, offset: usize, len: usize, ) -> Result<Ref<'a, [u8]>, ProgramError>
Narrow a shared byte-slice borrow to a checked sub-slice.
pub fn as_bytes_ptr(&self) -> *const u8
Trait Implementations§
impl<T: ?Sized> HopperRefOnly for Ref<'_, T>
Auto Trait Implementations§
impl<'a, T> Freeze for Ref<'a, T>where
T: ?Sized,
impl<'a, T> RefUnwindSafe for Ref<'a, T>where
T: RefUnwindSafe + ?Sized,
impl<'a, T> !Send for Ref<'a, T>
impl<'a, T> !Sync for Ref<'a, T>
impl<'a, T> Unpin for Ref<'a, T>where
T: ?Sized,
impl<'a, T> UnsafeUnpin for Ref<'a, T>where
T: ?Sized,
impl<'a, T> UnwindSafe for Ref<'a, T>where
T: RefUnwindSafe + ?Sized,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more