Trait solana_sdk::sysvar::Sysvar
source · pub trait Sysvar: SysvarId + Default + Sized + Serialize + DeserializeOwned {
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§
sourcefn 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
.
sourcefn to_account_info(&self, account_info: &mut AccountInfo<'_>) -> Option<()>
fn to_account_info(&self, account_info: &mut AccountInfo<'_>) -> Option<()>
sourcefn 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
.