solana_sdk::message

Struct AccountKeys

Source
pub struct AccountKeys<'a> { /* private fields */ }
Expand description

Collection of static and dynamically loaded keys used to load accounts during transaction processing.

Implementations§

Source§

impl<'a> AccountKeys<'a>

Source

pub fn new( static_keys: &'a [Pubkey], dynamic_keys: Option<&'a LoadedAddresses>, ) -> AccountKeys<'a>

Source

pub fn get(&self, index: usize) -> Option<&'a Pubkey>

Returns the address of the account at the specified index of the list of message account keys constructed from static keys, followed by dynamically loaded writable addresses, and lastly the list of dynamically loaded readonly addresses.

Source

pub fn len(&self) -> usize

Returns the total length of loaded accounts for a message

Source

pub fn is_empty(&self) -> bool

Returns true if this collection of account keys is empty

Source

pub fn iter(&self) -> impl Iterator<Item = &'a Pubkey> + Clone

Iterator for the addresses of the loaded accounts for a message

Source

pub fn compile_instructions( &self, instructions: &[Instruction], ) -> Vec<CompiledInstruction>

Compile instructions using the order of account keys to determine compiled instruction account indexes.

§Panics

Panics when compiling fails. See AccountKeys::try_compile_instructions for a full description of failure scenarios.

Source

pub fn try_compile_instructions( &self, instructions: &[Instruction], ) -> Result<Vec<CompiledInstruction>, CompileError>

Compile instructions using the order of account keys to determine compiled instruction account indexes.

§Errors

Compilation will fail if any instructions use account keys which are not present in this account key collection.

Compilation will fail if any instructions use account keys which are located at an index which cannot be cast to a u8 without overflow.

Trait Implementations§

Source§

impl<'a> Clone for AccountKeys<'a>

Source§

fn clone(&self) -> AccountKeys<'a>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for AccountKeys<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<'a> Default for AccountKeys<'a>

Source§

fn default() -> AccountKeys<'a>

Returns the “default value” for a type. Read more
Source§

impl Index<usize> for AccountKeys<'_>

Source§

type Output = Pubkey

The returned type after indexing.
Source§

fn index(&self, index: usize) -> &<AccountKeys<'_> as Index<usize>>::Output

Performs the indexing (container[index]) operation. Read more
Source§

impl PartialEq for AccountKeys<'_>

Source§

fn eq(&self, other: &AccountKeys<'_>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a> Eq for AccountKeys<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for AccountKeys<'a>

§

impl<'a> RefUnwindSafe for AccountKeys<'a>

§

impl<'a> Send for AccountKeys<'a>

§

impl<'a> Sync for AccountKeys<'a>

§

impl<'a> Unpin for AccountKeys<'a>

§

impl<'a> UnwindSafe for AccountKeys<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V