pub struct NestedFrame<'a, 'b, A>{ /* private fields */ }Expand description
A writing frame managing nested atoms.
Unlike the RootFrame, which really manages memory, this frame only
forwards writing calls to the next frame in the hierarchy and updates the atom header
accordingly. Additionally, this frame will assure for padding when dropped. These padding bytes
will not be included in the top level header, only in the surrounding ones.
Nested frames can only be created with the
create_nested_frame method.
Trait Implementations§
Source§impl<'a, 'b, A> Drop for NestedFrame<'a, 'b, A>
impl<'a, 'b, A> Drop for NestedFrame<'a, 'b, A>
Source§impl<'a, 'b, A> WritingFrame<'b> for NestedFrame<'a, 'b, A>
impl<'a, 'b, A> WritingFrame<'b> for NestedFrame<'a, 'b, A>
Source§impl<'a, 'b, A: AtomBody + ?Sized> WritingFrameExt<'b, A> for NestedFrame<'a, 'b, A>
impl<'a, 'b, A: AtomBody + ?Sized> WritingFrameExt<'b, A> for NestedFrame<'a, 'b, A>
Source§unsafe fn write_sized<T: Sized>(&mut self, object: &T) -> Result<&'a mut T, ()>
unsafe fn write_sized<T: Sized>(&mut self, object: &T) -> Result<&'a mut T, ()>
Try to write a sized object into the atom space. Read more
Source§unsafe fn create_nested_frame<'b, C: AtomBody + ?Sized>(
&'b mut self,
urids: &mut CachedMap,
) -> Result<NestedFrame<'b, 'a, C>, ()>
unsafe fn create_nested_frame<'b, C: AtomBody + ?Sized>( &'b mut self, urids: &mut CachedMap, ) -> Result<NestedFrame<'b, 'a, C>, ()>
Create a new atom header and return a nested writing frame for it. Read more
Source§unsafe fn get_atom_body<'b>(
&'b self,
urids: &mut CachedMap,
) -> Result<&'b A, GetBodyError>
unsafe fn get_atom_body<'b>( &'b self, urids: &mut CachedMap, ) -> Result<&'b A, GetBodyError>
Try to get a reference to the body from our atom header. Read more
Auto Trait Implementations§
impl<'a, 'b, A> Freeze for NestedFrame<'a, 'b, A>where
A: ?Sized,
impl<'a, 'b, A> !RefUnwindSafe for NestedFrame<'a, 'b, A>
impl<'a, 'b, A> !Send for NestedFrame<'a, 'b, A>
impl<'a, 'b, A> !Sync for NestedFrame<'a, 'b, A>
impl<'a, 'b, A> Unpin for NestedFrame<'a, 'b, A>
impl<'a, 'b, A> !UnwindSafe for NestedFrame<'a, 'b, A>
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
Source§impl<'a, W> LiteralWritingFrame<'a> for W
impl<'a, W> LiteralWritingFrame<'a> for W
Source§impl<'a, W> ObjectWritingFrame<'a> for W
impl<'a, W> ObjectWritingFrame<'a> for W
Source§fn push_property<'b, A: AtomBody + ?Sized>(
&'b mut self,
key: URID,
context: URID,
parameter: &A::InitializationParameter,
urids: &mut CachedMap,
) -> Result<NestedFrame<'b, 'a, A>, ()>
fn push_property<'b, A: AtomBody + ?Sized>( &'b mut self, key: URID, context: URID, parameter: &A::InitializationParameter, urids: &mut CachedMap, ) -> Result<NestedFrame<'b, 'a, A>, ()>
Add a property to the object. Read more