//! This code was AUTOGENERATED using the kinobi library.
//! Please DO NOT EDIT THIS FILE, instead use visitors
//! to add features, then rerun kinobi to update it.
//!
//! [https://github.com/metaplex-foundation/kinobi]
//!

use crate::generated::types::AddBlocker;
use crate::generated::types::Attributes;
use crate::generated::types::Autograph;
use crate::generated::types::BubblegumV2;
use crate::generated::types::BurnDelegate;
use crate::generated::types::Edition;
use crate::generated::types::FreezeDelegate;
use crate::generated::types::ImmutableMetadata;
use crate::generated::types::MasterEdition;
use crate::generated::types::PermanentBurnDelegate;
use crate::generated::types::PermanentFreezeDelegate;
use crate::generated::types::PermanentTransferDelegate;
use crate::generated::types::Royalties;
use crate::generated::types::TransferDelegate;
use crate::generated::types::UpdateDelegate;
use crate::generated::types::VerifiedCreators;
#[cfg(feature = "anchor")]
use anchor_lang::prelude::{AnchorDeserialize, AnchorSerialize};
#[cfg(not(feature = "anchor"))]
use borsh::{BorshDeserialize, BorshSerialize};

#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(not(feature = "anchor"), derive(BorshSerialize, BorshDeserialize))]
#[cfg_attr(feature = "anchor", derive(AnchorSerialize, AnchorDeserialize))]
#[derive(Clone, Debug, Eq, PartialEq)]
pub enum Plugin {
    Royalties(Royalties),
    FreezeDelegate(FreezeDelegate),
    BurnDelegate(BurnDelegate),
    TransferDelegate(TransferDelegate),
    UpdateDelegate(UpdateDelegate),
    PermanentFreezeDelegate(PermanentFreezeDelegate),
    Attributes(Attributes),
    PermanentTransferDelegate(PermanentTransferDelegate),
    PermanentBurnDelegate(PermanentBurnDelegate),
    Edition(Edition),
    MasterEdition(MasterEdition),
    AddBlocker(AddBlocker),
    ImmutableMetadata(ImmutableMetadata),
    VerifiedCreators(VerifiedCreators),
    Autograph(Autograph),
    BubblegumV2(BubblegumV2),
}
