pub struct SegmentRegistry<'a> { /* private fields */ }Expand description
Read-only view over a segmented account’s registry.
The registry lives right after the 16-byte AccountHeader.
Implementations§
Source§impl<'a> SegmentRegistry<'a>
impl<'a> SegmentRegistry<'a>
Sourcepub fn from_account(
account_data: &'a [u8],
) -> Result<SegmentRegistry<'a>, ProgramError>
pub fn from_account( account_data: &'a [u8], ) -> Result<SegmentRegistry<'a>, ProgramError>
Parse a segment registry from full account data.
Expects account data starting from byte 0 (including AccountHeader).
Sourcepub fn segment_count(&self) -> usize
pub fn segment_count(&self) -> usize
Number of segments in this account.
Sourcepub fn data_region_offset(&self) -> usize
pub fn data_region_offset(&self) -> usize
Where segment data begins (after all entries).
Sourcepub fn entry(&self, index: usize) -> Result<&SegmentEntry, ProgramError>
pub fn entry(&self, index: usize) -> Result<&SegmentEntry, ProgramError>
Get a segment entry by index.
Sourcepub fn find(&self, id: &[u8; 4]) -> Result<(usize, &SegmentEntry), ProgramError>
pub fn find(&self, id: &[u8; 4]) -> Result<(usize, &SegmentEntry), ProgramError>
Find a segment by its ID.
Sourcepub fn segment_data(&self, id: &[u8; 4]) -> Result<&'a [u8], ProgramError>
pub fn segment_data(&self, id: &[u8; 4]) -> Result<&'a [u8], ProgramError>
Get the raw data slice for a segment by ID.
Sourcepub fn segment_overlay<T>(&self, id: &[u8; 4]) -> Result<&'a T, ProgramError>where
T: Pod + FixedLayout,
pub fn segment_overlay<T>(&self, id: &[u8; 4]) -> Result<&'a T, ProgramError>where
T: Pod + FixedLayout,
Get a typed overlay for a segment by ID.
Sourcepub fn iter(&self) -> SegmentIter<'a>
pub fn iter(&self) -> SegmentIter<'a>
Iterate over all segment entries.
Sourcepub fn registry_size(&self) -> usize
pub fn registry_size(&self) -> usize
Total bytes consumed by the registry (header + all entries).
Auto Trait Implementations§
impl<'a> Freeze for SegmentRegistry<'a>
impl<'a> RefUnwindSafe for SegmentRegistry<'a>
impl<'a> Send for SegmentRegistry<'a>
impl<'a> Sync for SegmentRegistry<'a>
impl<'a> Unpin for SegmentRegistry<'a>
impl<'a> UnsafeUnpin for SegmentRegistry<'a>
impl<'a> UnwindSafe for SegmentRegistry<'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