pub struct SliceCursor<'a> { /* private fields */ }Expand description
Sequential read cursor over a byte slice.
Tracks a position and provides typed reads that advance it. Used for parsing instruction data and reading account fields sequentially.
Implementations§
Source§impl<'a> SliceCursor<'a>
impl<'a> SliceCursor<'a>
Sourcepub fn from_instruction(
data: &'a [u8],
min_len: usize,
) -> Result<Self, ProgramError>
pub fn from_instruction( data: &'a [u8], min_len: usize, ) -> Result<Self, ProgramError>
Create a cursor from instruction data, validating minimum length.
Sourcepub fn data_from_position(&self) -> &'a [u8]
pub fn data_from_position(&self) -> &'a [u8]
Reference to remaining data from current position.
Sourcepub fn read_u8(&mut self) -> Result<u8, ProgramError>
pub fn read_u8(&mut self) -> Result<u8, ProgramError>
Read a u8 and advance.
Sourcepub fn read_u16(&mut self) -> Result<u16, ProgramError>
pub fn read_u16(&mut self) -> Result<u16, ProgramError>
Read a little-endian u16 and advance.
Sourcepub fn read_u32(&mut self) -> Result<u32, ProgramError>
pub fn read_u32(&mut self) -> Result<u32, ProgramError>
Read a little-endian u32 and advance.
Sourcepub fn read_u64(&mut self) -> Result<u64, ProgramError>
pub fn read_u64(&mut self) -> Result<u64, ProgramError>
Read a little-endian u64 and advance.
Sourcepub fn read_i64(&mut self) -> Result<i64, ProgramError>
pub fn read_i64(&mut self) -> Result<i64, ProgramError>
Read a little-endian i64 and advance.
Sourcepub fn read_bool(&mut self) -> Result<bool, ProgramError>
pub fn read_bool(&mut self) -> Result<bool, ProgramError>
Read a boolean (0 = false, non-zero = true) and advance.
Sourcepub fn read_address(&mut self) -> Result<&'a [u8; 32], ProgramError>
pub fn read_address(&mut self) -> Result<&'a [u8; 32], ProgramError>
Read a 32-byte address and advance.
Sourcepub fn read_bytes(&mut self, len: usize) -> Result<&'a [u8], ProgramError>
pub fn read_bytes(&mut self, len: usize) -> Result<&'a [u8], ProgramError>
Read a fixed-size byte array and advance.
Auto Trait Implementations§
impl<'a> Freeze for SliceCursor<'a>
impl<'a> RefUnwindSafe for SliceCursor<'a>
impl<'a> Send for SliceCursor<'a>
impl<'a> Sync for SliceCursor<'a>
impl<'a> Unpin for SliceCursor<'a>
impl<'a> UnsafeUnpin for SliceCursor<'a>
impl<'a> UnwindSafe for SliceCursor<'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