#[repr(C)]pub struct CompressedOnlyExtension {
pub delegated_amount: u64,
pub withheld_transfer_fee: u64,
pub is_ata: u8,
}Expand description
CompressedOnly extension for compressed token accounts. This extension marks a compressed account as decompress-only (cannot be transferred). It stores the delegated amount from the source Token account when it was compressed-and-closed.
Fields§
§delegated_amount: u64The delegated amount from the source Token account’s delegate field. When decompressing, the decompression amount must match this value.
withheld_transfer_fee: u64Withheld transfer fee amount from the source Token account.
is_ata: u8Whether the source was an ATA (1) or regular token account (0). When is_ata=1, decompress must verify ATA derivation matches.
Implementations§
Trait Implementations§
Source§impl BorshDeserialize for CompressedOnlyExtension
impl BorshDeserialize for CompressedOnlyExtension
fn deserialize_reader<R: Read>(reader: &mut R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl Clone for CompressedOnlyExtension
impl Clone for CompressedOnlyExtension
Source§fn clone(&self) -> CompressedOnlyExtension
fn clone(&self) -> CompressedOnlyExtension
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CompressedOnlyExtension
impl Debug for CompressedOnlyExtension
Source§impl Hash for CompressedOnlyExtension
impl Hash for CompressedOnlyExtension
Source§impl PartialEq for CompressedOnlyExtension
impl PartialEq for CompressedOnlyExtension
Source§impl<'a> ZeroCopyAt<'a> for CompressedOnlyExtension
impl<'a> ZeroCopyAt<'a> for CompressedOnlyExtension
type ZeroCopyAt = ZCompressedOnlyExtension<'a>
fn zero_copy_at( __remaining_bytes: &'a [u8], ) -> Result<(Self::ZeroCopyAt, &'a [u8]), ZeroCopyError>
Source§impl<'a> ZeroCopyAtMut<'a> for CompressedOnlyExtension
impl<'a> ZeroCopyAtMut<'a> for CompressedOnlyExtension
type ZeroCopyAtMut = ZCompressedOnlyExtensionMut<'a>
fn zero_copy_at_mut( __remaining_bytes: &'a mut [u8], ) -> Result<(Self::ZeroCopyAtMut, &'a mut [u8]), ZeroCopyError>
Source§impl<'a> ZeroCopyNew<'a> for CompressedOnlyExtension
impl<'a> ZeroCopyNew<'a> for CompressedOnlyExtension
Source§type ZeroCopyConfig = ()
type ZeroCopyConfig = ()
Configuration type needed to initialize this type
Source§type Output = <CompressedOnlyExtension as ZeroCopyAtMut<'a>>::ZeroCopyAtMut
type Output = <CompressedOnlyExtension as ZeroCopyAtMut<'a>>::ZeroCopyAtMut
Output type - the mutable zero-copy view of this type
Source§fn byte_len(config: &Self::ZeroCopyConfig) -> Result<usize, ZeroCopyError>
fn byte_len(config: &Self::ZeroCopyConfig) -> Result<usize, ZeroCopyError>
Calculate the byte length needed for this type with the given configuration Read more
Source§fn new_zero_copy(
__remaining_bytes: &'a mut [u8],
config: Self::ZeroCopyConfig,
) -> Result<(Self::Output, &'a mut [u8]), ZeroCopyError>
fn new_zero_copy( __remaining_bytes: &'a mut [u8], config: Self::ZeroCopyConfig, ) -> Result<(Self::Output, &'a mut [u8]), ZeroCopyError>
Initialize this type in a mutable byte slice with the given configuration Read more
Source§impl ZeroCopyStructInner for CompressedOnlyExtension
impl ZeroCopyStructInner for CompressedOnlyExtension
type ZeroCopyInner = ZCompressedOnlyExtension<'static>
Source§impl ZeroCopyStructInnerMut for CompressedOnlyExtension
impl ZeroCopyStructInnerMut for CompressedOnlyExtension
type ZeroCopyInnerMut = ZCompressedOnlyExtensionMut<'static>
impl Copy for CompressedOnlyExtension
impl Eq for CompressedOnlyExtension
impl StructuralPartialEq for CompressedOnlyExtension
Auto Trait Implementations§
impl Freeze for CompressedOnlyExtension
impl RefUnwindSafe for CompressedOnlyExtension
impl Send for CompressedOnlyExtension
impl Sync for CompressedOnlyExtension
impl Unpin for CompressedOnlyExtension
impl UnwindSafe for CompressedOnlyExtension
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> HashToFieldSize for Twhere
T: BorshSerialize,
impl<T> HashToFieldSize for Twhere
T: BorshSerialize,
fn hash_to_field_size(&self) -> Result<[u8; 32], HasherError>
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