@@ -47,6 +47,7 @@ macro_rules! addpath {
47
47
#[ derive( Copy , Clone , Debug , Hash , PartialEq , Ord , PartialOrd ) ]
48
48
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
49
49
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
50
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
50
51
pub struct [ <$nlri AddpathNlri >] ( PathId , [ <$nlri Nlri >] ) ;
51
52
impl AfiSafiNlri for [ <$nlri AddpathNlri >] {
52
53
type Nlri = <[ <$nlri Nlri >] as AfiSafiNlri >:: Nlri ;
@@ -64,6 +65,7 @@ macro_rules! addpath {
64
65
#[ derive( Clone , Debug , Hash ) ]
65
66
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
66
67
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
68
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
67
69
pub struct [ <$nlri AddpathNlri >] <$gen>( PathId , [ <$nlri Nlri >] <$gen>) ;
68
70
impl <$gen> AfiSafiNlri for [ <$nlri AddpathNlri >] <$gen> {
69
71
type Nlri = <[ <$nlri Nlri >] <$gen> as AfiSafiNlri >:: Nlri ;
@@ -170,6 +172,7 @@ paste! {
170
172
#[ derive( Clone , Copy , Debug , Eq , Hash , Ord , PartialEq , PartialOrd ) ]
171
173
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
172
174
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
175
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
173
176
pub enum AfiSafiType {
174
177
$( $( [ <$afi_name $safi_name>] , ) +) +
175
178
Unsupported ( u16 , u8 ) ,
@@ -331,6 +334,7 @@ paste! {
331
334
#[ derive( Clone , Copy , Debug , Eq , Hash , Ord , PartialEq , PartialOrd ) ]
332
335
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
333
336
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
337
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
334
338
pub enum NlriType {
335
339
$( $(
336
340
[ <$afi_name $safi_name>] ,
@@ -518,6 +522,27 @@ impl Nlri<&[u8]> {
518
522
}
519
523
}
520
524
525
+ #[ cfg( feature = "bincode" ) ]
526
+ impl < Octs : Octets > bincode:: Encode for Nlri < Octs > {
527
+ fn encode < E : bincode:: enc:: Encoder > ( & self , encoder : & mut E ) -> Result < ( ) , bincode:: error:: EncodeError > {
528
+ todo ! ( )
529
+ }
530
+ }
531
+
532
+ #[ cfg( feature = "bincode" ) ]
533
+ impl < Octs : Octets > bincode:: Decode for Nlri < Octs > {
534
+ fn decode < D : bincode:: de:: Decoder > ( decoder : & mut D ) -> Result < Self , bincode:: error:: DecodeError > {
535
+ todo ! ( )
536
+ }
537
+ }
538
+
539
+ #[ cfg( feature = "bincode" ) ]
540
+ impl < ' de , Octs : Octets > bincode:: BorrowDecode < ' de > for Nlri < Octs > {
541
+ fn borrow_decode < D : bincode:: de:: BorrowDecoder < ' de > > ( decoder : & mut D ) -> Result < Self , bincode:: error:: DecodeError > {
542
+ todo ! ( )
543
+ }
544
+ }
545
+
521
546
//------------ Traits ---------------------------------------------------------
522
547
523
548
/// A type characterized by an AFI and SAFI.
@@ -640,6 +665,7 @@ afisafi! {
640
665
#[ derive( Copy , Clone , Debug , Hash , PartialEq , Ord , PartialOrd ) ]
641
666
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
642
667
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
668
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
643
669
pub struct Ipv4UnicastNlri ( Prefix ) ;
644
670
645
671
impl AfiSafiNlri for Ipv4UnicastNlri {
@@ -708,6 +734,7 @@ impl NlriCompose for Ipv4UnicastNlri {
708
734
#[ derive( Copy , Clone , Debug , Hash , PartialEq , Ord , PartialOrd ) ]
709
735
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
710
736
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
737
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
711
738
pub struct Ipv4MulticastNlri ( Prefix ) ;
712
739
713
740
impl AfiSafiNlri for Ipv4MulticastNlri {
@@ -775,6 +802,7 @@ impl NlriCompose for Ipv4MulticastNlri {
775
802
#[ derive( Copy , Clone , Debug , Hash ) ]
776
803
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
777
804
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
805
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
778
806
pub struct Ipv4MplsUnicastNlri < Octs > ( MplsNlri < Octs > ) ;
779
807
780
808
impl < Octs > AfiSafiNlri for Ipv4MplsUnicastNlri < Octs > {
@@ -850,6 +878,7 @@ impl<Octs: AsRef<[u8]>> Ord for Ipv4MplsUnicastNlri<Octs> {
850
878
#[ derive( Copy , Clone , Debug , Hash ) ]
851
879
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
852
880
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
881
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
853
882
pub struct Ipv4MplsVpnUnicastNlri < Octs > ( MplsVpnNlri < Octs > ) ;
854
883
855
884
impl < Octs > AfiSafiNlri for Ipv4MplsVpnUnicastNlri < Octs > {
@@ -924,6 +953,7 @@ impl<Octs: AsRef<[u8]>> Ord for Ipv4MplsVpnUnicastNlri<Octs> {
924
953
#[ derive( Clone , Debug , Hash ) ]
925
954
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
926
955
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
956
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
927
957
pub struct Ipv4RouteTargetNlri < Octs > ( RouteTargetNlri < Octs > ) ;
928
958
929
959
impl < Octs > AfiSafiNlri for Ipv4RouteTargetNlri < Octs > {
@@ -996,6 +1026,7 @@ impl<Octs: AsRef<[u8]>> Ord for Ipv4RouteTargetNlri<Octs> {
996
1026
#[ derive( Clone , Debug , Hash ) ]
997
1027
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
998
1028
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
1029
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
999
1030
pub struct Ipv4FlowSpecNlri < Octs > ( FlowSpecNlri < Octs > ) ;
1000
1031
1001
1032
impl < Octs > AfiSafiNlri for Ipv4FlowSpecNlri < Octs > {
@@ -1082,6 +1113,7 @@ impl<Octs: AsRef<[u8]>> Ord for Ipv4FlowSpecNlri<Octs> {
1082
1113
#[ derive( Copy , Clone , Debug , Hash , PartialEq , Ord , PartialOrd ) ]
1083
1114
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
1084
1115
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
1116
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
1085
1117
pub struct Ipv6UnicastNlri ( Prefix ) ;
1086
1118
impl AfiSafiNlri for Ipv6UnicastNlri {
1087
1119
type Nlri = Prefix ;
@@ -1148,6 +1180,7 @@ impl NlriCompose for Ipv6UnicastNlri {
1148
1180
#[ derive( Copy , Clone , Debug , Hash , PartialEq , Ord , PartialOrd ) ]
1149
1181
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
1150
1182
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
1183
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
1151
1184
pub struct Ipv6MulticastNlri ( Prefix ) ;
1152
1185
1153
1186
impl FromStr for Ipv6MulticastNlri {
@@ -1215,6 +1248,7 @@ impl NlriCompose for Ipv6MulticastNlri {
1215
1248
#[ derive( Copy , Clone , Debug , Hash ) ]
1216
1249
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
1217
1250
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
1251
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
1218
1252
pub struct Ipv6MplsUnicastNlri < Octs > ( MplsNlri < Octs > ) ;
1219
1253
1220
1254
impl < Octs > AfiSafiNlri for Ipv6MplsUnicastNlri < Octs > {
@@ -1291,6 +1325,7 @@ impl<Octs: AsRef<[u8]>> Ord for Ipv6MplsUnicastNlri<Octs> {
1291
1325
#[ derive( Clone , Debug , Hash ) ]
1292
1326
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
1293
1327
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
1328
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
1294
1329
pub struct Ipv6MplsVpnUnicastNlri < Octs > ( MplsVpnNlri < Octs > ) ;
1295
1330
1296
1331
impl < Octs > AfiSafiNlri for Ipv6MplsVpnUnicastNlri < Octs > {
@@ -1366,6 +1401,7 @@ impl<Octs: AsRef<[u8]>> Ord for Ipv6MplsVpnUnicastNlri<Octs> {
1366
1401
#[ derive( Clone , Debug , Hash ) ]
1367
1402
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
1368
1403
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
1404
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
1369
1405
pub struct Ipv6FlowSpecNlri < Octs > ( FlowSpecNlri < Octs > ) ;
1370
1406
1371
1407
impl < Octs > AfiSafiNlri for Ipv6FlowSpecNlri < Octs > {
@@ -1474,6 +1510,7 @@ impl<Octs> Ipv4MplsUnicastNlri<Octs> {
1474
1510
#[ derive( Copy , Clone , Debug , Hash , PartialEq , Ord , PartialOrd ) ]
1475
1511
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
1476
1512
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
1513
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
1477
1514
pub struct L2VpnVplsNlri ( VplsNlri ) ;
1478
1515
1479
1516
impl AfiSafiNlri for L2VpnVplsNlri {
@@ -1514,6 +1551,7 @@ impl NlriCompose for L2VpnVplsNlri {
1514
1551
#[ derive( Clone , Debug , Hash ) ]
1515
1552
#[ cfg_attr( feature = "arbitrary" , derive( arbitrary:: Arbitrary ) ) ]
1516
1553
#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
1554
+ #[ cfg_attr( feature = "bincode" , derive( bincode:: Decode , bincode:: Encode ) ) ]
1517
1555
pub struct L2VpnEvpnNlri < Octs > ( EvpnNlri < Octs > ) ;
1518
1556
1519
1557
impl < Octs > AfiSafiNlri for L2VpnEvpnNlri < Octs > {
0 commit comments