solana_program/message/
address_loader.rs

1use super::v0::{LoadedAddresses, MessageAddressTableLookup};
2#[deprecated(
3    since = "2.1.0",
4    note = "Use solana_transaction_error::AddressLoaderError instead"
5)]
6pub use solana_transaction_error::AddressLoaderError;
7
8pub trait AddressLoader: Clone {
9    fn load_addresses(
10        self,
11        lookups: &[MessageAddressTableLookup],
12    ) -> Result<LoadedAddresses, AddressLoaderError>;
13}
14
15#[derive(Clone)]
16pub enum SimpleAddressLoader {
17    Disabled,
18    Enabled(LoadedAddresses),
19}
20
21impl AddressLoader for SimpleAddressLoader {
22    fn load_addresses(
23        self,
24        _lookups: &[MessageAddressTableLookup],
25    ) -> Result<LoadedAddresses, AddressLoaderError> {
26        match self {
27            Self::Disabled => Err(AddressLoaderError::Disabled),
28            Self::Enabled(loaded_addresses) => Ok(loaded_addresses),
29        }
30    }
31}