Trait switchboard_solana::prelude::SolanaSysvar
pub trait SolanaSysvar: SysvarId + Default + Sized + Serialize + DeserializeOwned {
// Provided methods
fn size_of() -> usize { ... }
fn from_account_info(
account_info: &AccountInfo<'_>
) -> Result<Self, ProgramError> { ... }
fn to_account_info(&self, account_info: &mut AccountInfo<'_>) -> Option<()> { ... }
fn get() -> Result<Self, ProgramError> { ... }
}
Expand description
A type that holds sysvar data.
Provided Methods§
fn from_account_info(
account_info: &AccountInfo<'_>
) -> Result<Self, ProgramError>
fn from_account_info( account_info: &AccountInfo<'_> ) -> Result<Self, ProgramError>
Deserializes the sysvar from its AccountInfo
.
§Errors
If account_info
does not have the same ID as the sysvar this function
returns ProgramError::InvalidArgument
.
fn to_account_info(&self, account_info: &mut AccountInfo<'_>) -> Option<()>
fn to_account_info(&self, account_info: &mut AccountInfo<'_>) -> Option<()>
fn get() -> Result<Self, ProgramError>
fn get() -> Result<Self, ProgramError>
Load the sysvar directly from the runtime.
This is the preferred way to load a sysvar. Calling this method does not incur any deserialization overhead, and does not require the sysvar account to be passed to the program.
Not all sysvars support this method. If not, it returns
ProgramError::UnsupportedSysvar
.
Object Safety§
This trait is not object safe.