@@ -559,54 +559,40 @@ impl Redeemer {
559559}
560560
561561#[ wasm_bindgen]
562- #[ derive( Clone , Debug , Eq , Ord , PartialEq , PartialOrd ) ]
562+ #[ derive( Copy , Clone , Debug , Eq , Ord , PartialEq , PartialOrd ) ]
563563pub enum RedeemerTagKind {
564564 Spend ,
565565 Mint ,
566566 Cert ,
567567 Reward ,
568568}
569569
570- // TODO: simplify these two into one struct if possible: see NetworkId
571- #[ derive( Clone , Debug , Eq , Ord , PartialEq , PartialOrd ) ]
572- enum RedeemerTagEnum {
573- Spend ,
574- Mint ,
575- Cert ,
576- Reward ,
577- }
578-
579570#[ wasm_bindgen]
580571#[ derive( Clone , Debug , Eq , Ord , PartialEq , PartialOrd ) ]
581- pub struct RedeemerTag ( RedeemerTagEnum ) ;
572+ pub struct RedeemerTag ( RedeemerTagKind ) ;
582573
583574to_from_bytes ! ( RedeemerTag ) ;
584575
585576#[ wasm_bindgen]
586577impl RedeemerTag {
587578 pub fn new_spend ( ) -> Self {
588- Self ( RedeemerTagEnum :: Spend )
579+ Self ( RedeemerTagKind :: Spend )
589580 }
590581
591582 pub fn new_mint ( ) -> Self {
592- Self ( RedeemerTagEnum :: Mint )
583+ Self ( RedeemerTagKind :: Mint )
593584 }
594585
595586 pub fn new_cert ( ) -> Self {
596- Self ( RedeemerTagEnum :: Cert )
587+ Self ( RedeemerTagKind :: Cert )
597588 }
598589
599590 pub fn new_reward ( ) -> Self {
600- Self ( RedeemerTagEnum :: Reward )
591+ Self ( RedeemerTagKind :: Reward )
601592 }
602593
603594 pub fn kind ( & self ) -> RedeemerTagKind {
604- match & self . 0 {
605- RedeemerTagEnum :: Spend => RedeemerTagKind :: Spend ,
606- RedeemerTagEnum :: Mint => RedeemerTagKind :: Mint ,
607- RedeemerTagEnum :: Cert => RedeemerTagKind :: Cert ,
608- RedeemerTagEnum :: Reward => RedeemerTagKind :: Reward ,
609- }
595+ self . 0
610596 }
611597}
612598
@@ -1275,74 +1261,35 @@ impl Deserialize for Redeemer {
12751261 }
12761262}
12771263
1278- impl cbor_event:: se:: Serialize for RedeemerTagEnum {
1264+ impl cbor_event:: se:: Serialize for RedeemerTagKind {
12791265 fn serialize < ' se , W : Write > ( & self , serializer : & ' se mut Serializer < W > ) -> cbor_event:: Result < & ' se mut Serializer < W > > {
12801266 match self {
1281- RedeemerTagEnum :: Spend => {
1267+ RedeemerTagKind :: Spend => {
12821268 serializer. write_unsigned_integer ( 0u64 )
12831269 } ,
1284- RedeemerTagEnum :: Mint => {
1270+ RedeemerTagKind :: Mint => {
12851271 serializer. write_unsigned_integer ( 1u64 )
12861272 } ,
1287- RedeemerTagEnum :: Cert => {
1273+ RedeemerTagKind :: Cert => {
12881274 serializer. write_unsigned_integer ( 2u64 )
12891275 } ,
1290- RedeemerTagEnum :: Reward => {
1276+ RedeemerTagKind :: Reward => {
12911277 serializer. write_unsigned_integer ( 3u64 )
12921278 } ,
12931279 }
12941280 }
12951281}
12961282
1297- impl Deserialize for RedeemerTagEnum {
1283+ impl Deserialize for RedeemerTagKind {
12981284 fn deserialize < R : BufRead + Seek > ( raw : & mut Deserializer < R > ) -> Result < Self , DeserializeError > {
12991285 ( || -> Result < _ , DeserializeError > {
1300- let initial_position = raw. as_mut_ref ( ) . seek ( SeekFrom :: Current ( 0 ) ) . unwrap ( ) ;
1301- match ( |raw : & mut Deserializer < _ > | -> Result < _ , DeserializeError > {
1302- let i0_value = raw. unsigned_integer ( ) ?;
1303- if i0_value != 0 {
1304- return Err ( DeserializeFailure :: FixedValueMismatch { found : Key :: Uint ( i0_value) , expected : Key :: Uint ( 0 ) } . into ( ) ) ;
1305- }
1306- Ok ( ( ) )
1307- } ) ( raw)
1308- {
1309- Ok ( ( ) ) => return Ok ( RedeemerTagEnum :: Spend ) ,
1310- Err ( _) => raw. as_mut_ref ( ) . seek ( SeekFrom :: Start ( initial_position) ) . unwrap ( ) ,
1311- } ;
1312- match ( |raw : & mut Deserializer < _ > | -> Result < _ , DeserializeError > {
1313- let i1_value = raw. unsigned_integer ( ) ?;
1314- if i1_value != 1 {
1315- return Err ( DeserializeFailure :: FixedValueMismatch { found : Key :: Uint ( i1_value) , expected : Key :: Uint ( 1 ) } . into ( ) ) ;
1316- }
1317- Ok ( ( ) )
1318- } ) ( raw)
1319- {
1320- Ok ( ( ) ) => return Ok ( RedeemerTagEnum :: Mint ) ,
1321- Err ( _) => raw. as_mut_ref ( ) . seek ( SeekFrom :: Start ( initial_position) ) . unwrap ( ) ,
1322- } ;
1323- match ( |raw : & mut Deserializer < _ > | -> Result < _ , DeserializeError > {
1324- let i2_value = raw. unsigned_integer ( ) ?;
1325- if i2_value != 2 {
1326- return Err ( DeserializeFailure :: FixedValueMismatch { found : Key :: Uint ( i2_value) , expected : Key :: Uint ( 2 ) } . into ( ) ) ;
1327- }
1328- Ok ( ( ) )
1329- } ) ( raw)
1330- {
1331- Ok ( ( ) ) => return Ok ( RedeemerTagEnum :: Cert ) ,
1332- Err ( _) => raw. as_mut_ref ( ) . seek ( SeekFrom :: Start ( initial_position) ) . unwrap ( ) ,
1333- } ;
1334- match ( |raw : & mut Deserializer < _ > | -> Result < _ , DeserializeError > {
1335- let i3_value = raw. unsigned_integer ( ) ?;
1336- if i3_value != 3 {
1337- return Err ( DeserializeFailure :: FixedValueMismatch { found : Key :: Uint ( i3_value) , expected : Key :: Uint ( 3 ) } . into ( ) ) ;
1338- }
1339- Ok ( ( ) )
1340- } ) ( raw)
1341- {
1342- Ok ( ( ) ) => return Ok ( RedeemerTagEnum :: Reward ) ,
1343- Err ( _) => raw. as_mut_ref ( ) . seek ( SeekFrom :: Start ( initial_position) ) . unwrap ( ) ,
1344- } ;
1345- Err ( DeserializeError :: new ( "RedeemerTagEnum" , DeserializeFailure :: NoVariantMatched . into ( ) ) )
1286+ match raw. unsigned_integer ( ) {
1287+ Ok ( 0 ) => Ok ( RedeemerTagKind :: Spend ) ,
1288+ Ok ( 1 ) => Ok ( RedeemerTagKind :: Mint ) ,
1289+ Ok ( 2 ) => Ok ( RedeemerTagKind :: Cert ) ,
1290+ Ok ( 3 ) => Ok ( RedeemerTagKind :: Reward ) ,
1291+ Ok ( _) | Err ( _) => Err ( DeserializeFailure :: NoVariantMatched . into ( ) ) ,
1292+ }
13461293 } ) ( ) . map_err ( |e| e. annotate ( "RedeemerTagEnum" ) )
13471294 }
13481295}
@@ -1355,7 +1302,7 @@ impl cbor_event::se::Serialize for RedeemerTag {
13551302
13561303impl Deserialize for RedeemerTag {
13571304 fn deserialize < R : BufRead + Seek > ( raw : & mut Deserializer < R > ) -> Result < Self , DeserializeError > {
1358- Ok ( Self ( RedeemerTagEnum :: deserialize ( raw) ?) )
1305+ Ok ( Self ( RedeemerTagKind :: deserialize ( raw) ?) )
13591306 }
13601307}
13611308
0 commit comments