2424//! ```
2525use std:: fmt:: Debug ;
2626
27+ #[ cfg( feature = "serde" ) ]
2728use serde:: { Deserialize , Serialize } ;
2829
2930use crate :: algorithm:: sort:: heap_select:: HeapSelection ;
@@ -32,7 +33,8 @@ use crate::math::distance::Distance;
3233use crate :: math:: num:: RealNumber ;
3334
3435/// Implements Cover Tree algorithm
35- #[ derive( Serialize , Deserialize , Debug ) ]
36+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
37+ #[ derive( Debug ) ]
3638pub struct CoverTree < T , F : RealNumber , D : Distance < T , F > > {
3739 base : F ,
3840 inv_log_base : F ,
@@ -56,7 +58,8 @@ impl<T, F: RealNumber, D: Distance<T, F>> PartialEq for CoverTree<T, F, D> {
5658 }
5759}
5860
59- #[ derive( Debug , Serialize , Deserialize ) ]
61+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
62+ #[ derive( Debug ) ]
6063struct Node < F : RealNumber > {
6164 idx : usize ,
6265 max_dist : F ,
@@ -65,7 +68,7 @@ struct Node<F: RealNumber> {
6568 scale : i64 ,
6669}
6770
68- #[ derive( Debug , Serialize , Deserialize ) ]
71+ #[ derive( Debug ) ]
6972struct DistanceSet < F : RealNumber > {
7073 idx : usize ,
7174 dist : Vec < F > ,
@@ -454,7 +457,8 @@ mod tests {
454457 use super :: * ;
455458 use crate :: math:: distance:: Distances ;
456459
457- #[ derive( Debug , Serialize , Deserialize , Clone ) ]
460+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
461+ #[ derive( Debug , Clone ) ]
458462 struct SimpleDistance { }
459463
460464 impl Distance < i32 , f64 > for SimpleDistance {
@@ -500,6 +504,7 @@ mod tests {
500504 }
501505
502506 #[ test]
507+ #[ cfg( feature = "serde" ) ]
503508 fn serde ( ) {
504509 let data = vec ! [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] ;
505510
0 commit comments