pub struct BorrowedAccount<'a> { /* private fields */ }
Expand description
Shared account borrowed from the TransactionContext and an InstructionContext.
Implementations§
Source§impl<'a> BorrowedAccount<'a>
impl<'a> BorrowedAccount<'a>
Sourcepub fn transaction_context(&self) -> &TransactionContext
pub fn transaction_context(&self) -> &TransactionContext
Returns the transaction context
Sourcepub fn get_index_in_transaction(&self) -> IndexOfAccount
pub fn get_index_in_transaction(&self) -> IndexOfAccount
Returns the index of this account (transaction wide)
Sourcepub fn set_owner(&mut self, pubkey: &[u8]) -> Result<(), InstructionError>
pub fn set_owner(&mut self, pubkey: &[u8]) -> Result<(), InstructionError>
Assignes the owner of this account (transaction wide)
Sourcepub fn get_lamports(&self) -> u64
pub fn get_lamports(&self) -> u64
Returns the number of lamports of this account (transaction wide)
Sourcepub fn set_lamports(&mut self, lamports: u64) -> Result<(), InstructionError>
pub fn set_lamports(&mut self, lamports: u64) -> Result<(), InstructionError>
Overwrites the number of lamports of this account (transaction wide)
Sourcepub fn checked_add_lamports(
&mut self,
lamports: u64,
) -> Result<(), InstructionError>
pub fn checked_add_lamports( &mut self, lamports: u64, ) -> Result<(), InstructionError>
Adds lamports to this account (transaction wide)
Sourcepub fn checked_sub_lamports(
&mut self,
lamports: u64,
) -> Result<(), InstructionError>
pub fn checked_sub_lamports( &mut self, lamports: u64, ) -> Result<(), InstructionError>
Subtracts lamports from this account (transaction wide)
Sourcepub fn get_data(&self) -> &[u8] ⓘ
pub fn get_data(&self) -> &[u8] ⓘ
Returns a read-only slice of the account data (transaction wide)
Sourcepub fn get_data_mut(&mut self) -> Result<&mut [u8], InstructionError>
pub fn get_data_mut(&mut self) -> Result<&mut [u8], InstructionError>
Returns a writable slice of the account data (transaction wide)
Sourcepub fn spare_data_capacity_mut(
&mut self,
) -> Result<&mut [MaybeUninit<u8>], InstructionError>
pub fn spare_data_capacity_mut( &mut self, ) -> Result<&mut [MaybeUninit<u8>], InstructionError>
Returns the spare capacity of the vector backing the account data.
This method should only ever be used during CPI, where after a shrinking realloc we want to zero the spare capacity.
Sourcepub fn set_data_from_slice(
&mut self,
data: &[u8],
) -> Result<(), InstructionError>
pub fn set_data_from_slice( &mut self, data: &[u8], ) -> Result<(), InstructionError>
Overwrites the account data and size (transaction wide).
Call this when you have a slice of data you do not own and want to replace the account data with it.
Sourcepub fn set_data_length(
&mut self,
new_length: usize,
) -> Result<(), InstructionError>
pub fn set_data_length( &mut self, new_length: usize, ) -> Result<(), InstructionError>
Resizes the account data (transaction wide)
Fills it with zeros at the end if is extended or truncates at the end otherwise.
Sourcepub fn extend_from_slice(&mut self, data: &[u8]) -> Result<(), InstructionError>
pub fn extend_from_slice(&mut self, data: &[u8]) -> Result<(), InstructionError>
Appends all elements in a slice to the account
Sourcepub fn reserve(&mut self, additional: usize) -> Result<(), InstructionError>
pub fn reserve(&mut self, additional: usize) -> Result<(), InstructionError>
Reserves capacity for at least additional more elements to be inserted in the given account. Does nothing if capacity is already sufficient.
Sourcepub fn capacity(&self) -> usize
pub fn capacity(&self) -> usize
Returns the number of bytes the account can hold without reallocating.
Returns whether the underlying AccountSharedData is shared.
The data is shared if the account has been loaded from the accounts database and has never been written to. Writing to an account unshares it.
During account serialization, if an account is shared it’ll get mapped as CoW, else it’ll get mapped directly as writable.
Sourcepub fn get_state<T: DeserializeOwned>(&self) -> Result<T, InstructionError>
pub fn get_state<T: DeserializeOwned>(&self) -> Result<T, InstructionError>
Deserializes the account data into a state
Sourcepub fn set_state<T: Serialize>(
&mut self,
state: &T,
) -> Result<(), InstructionError>
pub fn set_state<T: Serialize>( &mut self, state: &T, ) -> Result<(), InstructionError>
Serializes a state into the account data
pub fn is_rent_exempt_at_data_length(&self, data_length: usize) -> bool
Sourcepub fn is_executable(&self) -> bool
pub fn is_executable(&self) -> bool
Returns whether this account is executable (transaction wide)
Sourcepub fn set_executable(
&mut self,
is_executable: bool,
) -> Result<(), InstructionError>
pub fn set_executable( &mut self, is_executable: bool, ) -> Result<(), InstructionError>
Configures whether this account is executable (transaction wide)
Sourcepub fn get_rent_epoch(&self) -> u64
pub fn get_rent_epoch(&self) -> u64
Returns the rent epoch of this account (transaction wide)
Sourcepub fn is_writable(&self) -> bool
pub fn is_writable(&self) -> bool
Returns whether this account is writable (instruction wide)
Sourcepub fn is_owned_by_current_program(&self) -> bool
pub fn is_owned_by_current_program(&self) -> bool
Returns true if the owner of this account is the current InstructionContext
s last program (instruction wide)
Sourcepub fn can_data_be_changed(&self) -> Result<(), InstructionError>
pub fn can_data_be_changed(&self) -> Result<(), InstructionError>
Returns an error if the account data can not be mutated by the current program
Sourcepub fn can_data_be_resized(
&self,
new_length: usize,
) -> Result<(), InstructionError>
pub fn can_data_be_resized( &self, new_length: usize, ) -> Result<(), InstructionError>
Returns an error if the account data can not be resized to the given length
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for BorrowedAccount<'a>
impl<'a> !RefUnwindSafe for BorrowedAccount<'a>
impl<'a> !Send for BorrowedAccount<'a>
impl<'a> !Sync for BorrowedAccount<'a>
impl<'a> Unpin for BorrowedAccount<'a>
impl<'a> !UnwindSafe for BorrowedAccount<'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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more