spl_token_2022_interface/extension/pausable/
mod.rs1#[cfg(feature = "serde")]
2use serde::{Deserialize, Serialize};
3use {
4 crate::extension::{Extension, ExtensionType},
5 bytemuck::{Pod, Zeroable},
6 spl_pod::{optional_keys::OptionalNonZeroPubkey, primitives::PodBool},
7};
8
9pub mod instruction;
11
12#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
14#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
15#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable)]
16#[repr(C)]
17pub struct PausableConfig {
18 pub authority: OptionalNonZeroPubkey,
20 pub paused: PodBool,
22}
23
24#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
26#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
27#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable)]
28#[repr(transparent)]
29pub struct PausableAccount;
30
31impl Extension for PausableConfig {
32 const TYPE: ExtensionType = ExtensionType::Pausable;
33}
34
35impl Extension for PausableAccount {
36 const TYPE: ExtensionType = ExtensionType::PausableAccount;
37}