pub struct DataWriter<'a> { /* private fields */ }Expand description
Zero-copy write cursor over a mutable byte slice.
Position-tracked and bounds-checked. Use this when initializing a new account’s data layout.
ⓘ
let mut raw = account.try_borrow_mut()?;
let mut w = DataWriter::new(&mut *raw);
w.write_u8(MY_DISC)?;
w.write_u64(0)?;
w.write_address(&authority)?;Implementations§
Source§impl<'a> DataWriter<'a>
impl<'a> DataWriter<'a>
pub fn new(data: &'a mut [u8]) -> Self
pub fn write_u8(&mut self, val: u8) -> Result<(), ProgramError>
pub fn write_u16(&mut self, val: u16) -> Result<(), ProgramError>
pub fn write_u32(&mut self, val: u32) -> Result<(), ProgramError>
pub fn write_u64(&mut self, val: u64) -> Result<(), ProgramError>
pub fn write_u128(&mut self, val: u128) -> Result<(), ProgramError>
pub fn write_i16(&mut self, val: i16) -> Result<(), ProgramError>
pub fn write_i32(&mut self, val: i32) -> Result<(), ProgramError>
pub fn write_i64(&mut self, val: i64) -> Result<(), ProgramError>
pub fn write_i128(&mut self, val: i128) -> Result<(), ProgramError>
Sourcepub fn write_bool(&mut self, val: bool) -> Result<(), ProgramError>
pub fn write_bool(&mut self, val: bool) -> Result<(), ProgramError>
Writes 1u8 for true, 0u8 for false.
pub fn write_i8(&mut self, val: i8) -> Result<(), ProgramError>
pub fn write_address(&mut self, addr: &Address) -> Result<(), ProgramError>
Auto Trait Implementations§
impl<'a> Freeze for DataWriter<'a>
impl<'a> RefUnwindSafe for DataWriter<'a>
impl<'a> Send for DataWriter<'a>
impl<'a> Sync for DataWriter<'a>
impl<'a> Unpin for DataWriter<'a>
impl<'a> UnsafeUnpin for DataWriter<'a>
impl<'a> !UnwindSafe for DataWriter<'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