carbon_crew_decoder/instructions/
mod.rs1use super::CrewDecoder;
2pub mod mint_crew_member;
3pub mod redeem_crew_pack;
4pub mod register_crew_config;
5pub mod register_pack_tiers;
6pub mod register_pack_type;
7pub mod register_sft_redemption;
8pub mod update_pack_tiers;
9
10#[derive(
11 carbon_core::InstructionType,
12 serde::Serialize,
13 serde::Deserialize,
14 PartialEq,
15 Eq,
16 Debug,
17 Clone,
18 Hash,
19)]
20pub enum CrewInstruction {
21 MintCrewMember(mint_crew_member::MintCrewMember),
22 RedeemCrewPack(redeem_crew_pack::RedeemCrewPack),
23 RegisterCrewConfig(register_crew_config::RegisterCrewConfig),
24 RegisterPackTiers(register_pack_tiers::RegisterPackTiers),
25 RegisterPackType(register_pack_type::RegisterPackType),
26 RegisterSftRedemption(register_sft_redemption::RegisterSftRedemption),
27 UpdatePackTiers(update_pack_tiers::UpdatePackTiers),
28}
29
30impl<'a> carbon_core::instruction::InstructionDecoder<'a> for CrewDecoder {
31 type InstructionType = CrewInstruction;
32
33 fn decode_instruction(
34 &self,
35 instruction: &solana_instruction::Instruction,
36 ) -> Option<carbon_core::instruction::DecodedInstruction<Self::InstructionType>> {
37 carbon_core::try_decode_instructions!(instruction,
38 CrewInstruction::MintCrewMember => mint_crew_member::MintCrewMember,
39 CrewInstruction::RedeemCrewPack => redeem_crew_pack::RedeemCrewPack,
40 CrewInstruction::RegisterCrewConfig => register_crew_config::RegisterCrewConfig,
41 CrewInstruction::RegisterPackTiers => register_pack_tiers::RegisterPackTiers,
42 CrewInstruction::RegisterPackType => register_pack_type::RegisterPackType,
43 CrewInstruction::RegisterSftRedemption => register_sft_redemption::RegisterSftRedemption,
44 CrewInstruction::UpdatePackTiers => update_pack_tiers::UpdatePackTiers,
45 )
46 }
47}