pub struct Context<'a, 'b, 'c, 'info, T>where
    T: Bumps,{
    pub program_id: &'a Pubkey,
    pub accounts: &'b mut T,
    pub remaining_accounts: &'c [AccountInfo<'info>],
    pub bumps: <T as Bumps>::Bumps,
}Expand description
Provides non-argument inputs to the program.
§Example
ⓘ
pub fn set_data(ctx: Context<SetData>, age: u64, other_data: u32) -> Result<()> {
    // Set account data like this
    (*ctx.accounts.my_account).age = age;
    (*ctx.accounts.my_account).other_data = other_data;
    // or like this
    let my_account = &mut ctx.account.my_account;
    my_account.age = age;
    my_account.other_data = other_data;
    Ok(())
}Fields§
§program_id: &'a PubkeyCurrently executing program id.
accounts: &'b mut TDeserialized accounts.
remaining_accounts: &'c [AccountInfo<'info>]Remaining accounts given but not deserialized or validated. Be very careful when using this directly.
bumps: <T as Bumps>::BumpsBump seeds found during constraint validation. This is provided as a convenience so that handlers don’t have to recalculate bump seeds or pass them in as arguments. Type is the bumps struct generated by #[derive(Accounts)]
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl<'a, 'b, 'c, 'info, T> Freeze for Context<'a, 'b, 'c, 'info, T>
impl<'a, 'b, 'c, 'info, T> !RefUnwindSafe for Context<'a, 'b, 'c, 'info, T>
impl<'a, 'b, 'c, 'info, T> !Send for Context<'a, 'b, 'c, 'info, T>
impl<'a, 'b, 'c, 'info, T> !Sync for Context<'a, 'b, 'c, 'info, T>
impl<'a, 'b, 'c, 'info, T> Unpin for Context<'a, 'b, 'c, 'info, T>
impl<'a, 'b, 'c, 'info, T> !UnwindSafe for Context<'a, 'b, 'c, 'info, T>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
 
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more