solana_message/
address_loader.rs

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