pub struct Rooted<'a, 'b, T: Rootable> { /* private fields */ }
Expand description
Rooted value on stack. This is non-copyable type that is used to hold GC thing on stack.
Implementations§
Source§impl<'a, 'b, T: Rootable> Rooted<'a, 'b, T>
impl<'a, 'b, T: Rootable> Rooted<'a, 'b, T>
Sourcepub unsafe fn construct(pin: Pin<&'a mut ShadowStackInternal<'b, T>>) -> Self
pub unsafe fn construct(pin: Pin<&'a mut ShadowStackInternal<'b, T>>) -> Self
Create rooted value from pinned reference. Note that this function must be used only
inside $letroot
macro.
pub unsafe fn get_internal(&self) -> &ShadowStackInternal<'_, T>
pub unsafe fn get_internal_mut(&mut self) -> &mut &ShadowStackInternal<'_, T>
pub fn mut_handle(&mut self) -> HandleMut<'_, T>
pub fn handle(&self) -> Handle<'_, T>
Trait Implementations§
Auto Trait Implementations§
impl<'a, 'b, T> Freeze for Rooted<'a, 'b, T>
impl<'a, 'b, T> !RefUnwindSafe for Rooted<'a, 'b, T>
impl<'a, 'b, T> !Send for Rooted<'a, 'b, T>
impl<'a, 'b, T> !Sync for Rooted<'a, 'b, T>
impl<'a, 'b, T> Unpin for Rooted<'a, 'b, T>
impl<'a, 'b, T> !UnwindSafe for Rooted<'a, 'b, T>
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