11use crate :: codecs:: varint:: parse_varint;
22use crate :: decoder:: { Layer01 , Unknown } ;
33use crate :: utils:: { parse_u8, take} ;
4+ use crate :: v2:: decode_v2_layer;
45use crate :: { DecodeState , Decoder , Layer , MltError , MltRefResult , MltResult , ParsedLayer , Parser } ;
56
67impl < ' a , S : DecodeState > Layer < ' a , S > {
@@ -9,7 +10,7 @@ impl<'a, S: DecodeState> Layer<'a, S> {
910 pub fn as_layer01 ( & self ) -> Option < & Layer01 < ' a , S > > {
1011 match self {
1112 Self :: Tag01 ( l) => Some ( l) ,
12- Self :: Unknown ( _ ) => None ,
13+ _ => None ,
1314 }
1415 }
1516
@@ -18,7 +19,7 @@ impl<'a, S: DecodeState> Layer<'a, S> {
1819 pub fn into_layer01 ( self ) -> Option < Layer01 < ' a , S > > {
1920 match self {
2021 Self :: Tag01 ( l) => Some ( l) ,
21- Self :: Unknown ( _ ) => None ,
22+ _ => None ,
2223 }
2324 }
2425}
@@ -38,6 +39,7 @@ impl<'a> Layer<'a> {
3839
3940 let layer = match tag {
4041 1 => Layer :: Tag01 ( Layer01 :: from_bytes ( value, parser) ?) ,
42+ 2 => Layer :: Tag02 ( decode_v2_layer ( value) ?) ,
4143 tag => Layer :: Unknown ( Unknown { tag, value } ) ,
4244 } ;
4345
@@ -51,6 +53,7 @@ impl<'a> Layer<'a> {
5153 pub fn decode_all ( self , dec : & mut Decoder ) -> MltResult < ParsedLayer < ' a > > {
5254 match self {
5355 Layer :: Tag01 ( v) => Ok ( Layer :: Tag01 ( v. decode_all ( dec) ?) ) ,
56+ Layer :: Tag02 ( v) => Ok ( Layer :: Tag02 ( v) ) ,
5457 Layer :: Unknown ( u) => Ok ( Layer :: Unknown ( u) ) ,
5558 }
5659 }
0 commit comments