pub struct Arena { /* private fields */ }Expand description
A memory-mapped arena for zero-copy data storage.
The Arena is the owner of the mmap and provides both read and write access.
For concurrent access patterns, use ArenaReader and ArenaWriter.
Implementations§
Source§impl Arena
impl Arena
Sourcepub fn create(trace_id: TraceId, config: &ArenaConfig) -> Result<Self>
pub fn create(trace_id: TraceId, config: &ArenaConfig) -> Result<Self>
Create a new arena for the given trace.
Sourcepub fn write_position(&self) -> ArenaOffset
pub fn write_position(&self) -> ArenaOffset
Get the current write position.
Sourcepub fn available_space(&self) -> u64
pub fn available_space(&self) -> u64
Get available space in bytes.
Sourcepub fn write_bytes<T>(&self, bytes: &[u8]) -> Result<RelPtr<T>>
pub fn write_bytes<T>(&self, bytes: &[u8]) -> Result<RelPtr<T>>
Write serialized bytes to the arena and return a relative pointer.
Sourcepub fn read_bytes(&self, offset: ArenaOffset, size: usize) -> Result<Vec<u8>>
pub fn read_bytes(&self, offset: ArenaOffset, size: usize) -> Result<Vec<u8>>
Read bytes from the arena.
Sourcepub fn reader(&self) -> ArenaReader
pub fn reader(&self) -> ArenaReader
Create a reader handle for this arena.
Sourcepub fn writer(&self) -> ArenaWriter
pub fn writer(&self) -> ArenaWriter
Create a writer handle for this arena.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Arena
impl !RefUnwindSafe for Arena
impl Send for Arena
impl Sync for Arena
impl Unpin for Arena
impl !UnwindSafe for Arena
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.