use {
crate::types::{
AuthorizationData, CollectionDetailsToggle, CollectionToggle, Data, RuleSetToggle,
TokenStandard, UsesToggle,
},
solana_pubkey::Pubkey,
};
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, borsh::BorshSerialize, borsh::BorshDeserialize, PartialEq)]
pub enum UpdateArgs {
V1 {
new_update_authority: Option<Pubkey>,
data: Option<Data>,
primary_sale_happened: Option<bool>,
is_mutable: Option<bool>,
collection: CollectionToggle,
collection_details: CollectionDetailsToggle,
uses: UsesToggle,
rule_set: RuleSetToggle,
authorization_data: Option<AuthorizationData>,
},
AsUpdateAuthorityV2 {
new_update_authority: Option<Pubkey>,
data: Option<Data>,
primary_sale_happened: Option<bool>,
is_mutable: Option<bool>,
collection: CollectionToggle,
collection_details: CollectionDetailsToggle,
uses: UsesToggle,
rule_set: RuleSetToggle,
token_standard: Option<TokenStandard>,
authorization_data: Option<AuthorizationData>,
},
AsAuthorityItemDelegateV2 {
new_update_authority: Option<Pubkey>,
primary_sale_happened: Option<bool>,
is_mutable: Option<bool>,
token_standard: Option<TokenStandard>,
authorization_data: Option<AuthorizationData>,
},
AsCollectionDelegateV2 {
collection: CollectionToggle,
authorization_data: Option<AuthorizationData>,
},
AsDataDelegateV2 {
data: Option<Data>,
authorization_data: Option<AuthorizationData>,
},
AsProgrammableConfigDelegateV2 {
rule_set: RuleSetToggle,
authorization_data: Option<AuthorizationData>,
},
AsDataItemDelegateV2 {
data: Option<Data>,
authorization_data: Option<AuthorizationData>,
},
AsCollectionItemDelegateV2 {
collection: CollectionToggle,
authorization_data: Option<AuthorizationData>,
},
AsProgrammableConfigItemDelegateV2 {
rule_set: RuleSetToggle,
authorization_data: Option<AuthorizationData>,
},
}