solana_message/
address_loader.rs1use {
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}