use light_compressed_account::instruction_data::zero_copy_set::CompressedCpiContextTrait;
use light_zero_copy::{ZeroCopy, ZeroCopyMut};
use crate::{AnchorDeserialize, AnchorSerialize};
#[repr(C)]
#[derive(
AnchorSerialize,
AnchorDeserialize,
Debug,
Clone,
Copy,
PartialEq,
Eq,
Default,
ZeroCopy,
ZeroCopyMut,
)]
pub struct CompressedCpiContext {
pub set_context: bool,
pub first_set_context: bool,
}
impl CompressedCpiContextTrait for ZCompressedCpiContext<'_> {
fn first_set_context(&self) -> u8 {
if self.first_set_context() {
1
} else {
0
}
}
fn set_context(&self) -> u8 {
if self.set_context() {
1
} else {
0
}
}
}
impl CompressedCpiContextTrait for CompressedCpiContext {
fn first_set_context(&self) -> u8 {
if self.first_set_context {
1
} else {
0
}
}
fn set_context(&self) -> u8 {
if self.set_context {
1
} else {
0
}
}
}