Skip to main content

WritableAccount

Trait WritableAccount 

Source
pub trait WritableAccount: ReadableAccount {
    // Required methods
    fn set_lamports(&mut self, lamports: u64);
    fn data_as_mut_slice(&mut self) -> &mut [u8] ;
    fn set_owner(&mut self, owner: Pubkey);
    fn copy_into_owner_from_slice(&mut self, source: &[u8]);
    fn set_executable(&mut self, executable: bool);
    fn set_rent_epoch(&mut self, epoch: Epoch);

    // Provided methods
    fn checked_add_lamports(
        &mut self,
        lamports: u64,
    ) -> Result<(), LamportsError> { ... }
    fn checked_sub_lamports(
        &mut self,
        lamports: u64,
    ) -> Result<(), LamportsError> { ... }
    fn saturating_add_lamports(&mut self, lamports: u64) { ... }
    fn saturating_sub_lamports(&mut self, lamports: u64) { ... }
}
Expand description

Writable access to account state.

Required Methods§

Source

fn set_lamports(&mut self, lamports: u64)

Replaces the lamport balance.

Source

fn data_as_mut_slice(&mut self) -> &mut [u8]

Returns mutable access to the account data.

Source

fn set_owner(&mut self, owner: Pubkey)

Replaces the owner.

Source

fn copy_into_owner_from_slice(&mut self, source: &[u8])

Copies 32 raw bytes into the owner pubkey.

Source

fn set_executable(&mut self, executable: bool)

Sets the executable flag.

Source

fn set_rent_epoch(&mut self, epoch: Epoch)

Sets the rent epoch view if the implementation stores one.

Implementations that do not store rent epoch may ignore this.

Provided Methods§

Source

fn checked_add_lamports(&mut self, lamports: u64) -> Result<(), LamportsError>

Adds lamports or returns an overflow error.

Source

fn checked_sub_lamports(&mut self, lamports: u64) -> Result<(), LamportsError>

Subtracts lamports or returns an underflow error.

Source

fn saturating_add_lamports(&mut self, lamports: u64)

Adds lamports and saturates on overflow.

Source

fn saturating_sub_lamports(&mut self, lamports: u64)

Subtracts lamports and saturates on underflow.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§