pub struct Block<T> {
pub pointer: RelativePtr<T>,
}Expand description
A typed handle to an allocated block in the matrix.
Since the matrix operates entirely on raw pointer addresses and internal
types, Block<T> is provided at the API level to wrap allocations into
a typed, ergonomic handle. The raw RelativePtr returned by the matrix
is reinterpreted as T and wrapped in Block<T> to maintain type
information at the surface layer. All pointer arithmetic is delegated to
the inner RelativePtr<T>, referred to as pointer.
§Validity
A Block<T> is valid as long as:
- The originating
MatrixHandler(and its mmap) is alive. - The block has not been freed via
handler.free().
Blocks carry no lifetime parameter. The caller is responsible for not using a block after freeing it or after the handler is dropped.
Fields§
§pointer: RelativePtr<T>Payload offset from SHM base — points past the BlockHeader.
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for Block<T>
impl<T> RefUnwindSafe for Block<T>where
T: RefUnwindSafe,
impl<T> Send for Block<T>where
T: Send,
impl<T> Sync for Block<T>where
T: Sync,
impl<T> Unpin for Block<T>where
T: Unpin,
impl<T> UnsafeUnpin for Block<T>
impl<T> UnwindSafe for Block<T>where
T: UnwindSafe,
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