11use rust_decimal:: Decimal ;
22
3- #[ derive( Debug , Clone , PartialEq , Eq ) ]
3+ #[ derive( Debug , Clone , Copy , PartialEq , Eq ) ]
44pub struct Order {
55 pub price : Decimal ,
66 pub size : Decimal ,
@@ -33,13 +33,13 @@ impl<const REV: bool> Side<REV> {
3333 pub ( crate ) fn diff_update ( & mut self , order : Order ) {
3434 if order. size == Decimal :: ZERO {
3535 // Remove existing order.
36- if let Ok ( idx) = self . search ( & order) {
36+ if let Ok ( idx) = self . search ( order) {
3737 // Found order with target price.
3838 self . vec . remove ( idx) ;
3939 } // It's ok if such order is not found.
4040 } else {
4141 // Insert new order or update existing.
42- match self . search ( & order) {
42+ match self . search ( order) {
4343 Ok ( idx) => {
4444 // Update existing order.
4545 self . vec [ idx] . size = order. size ;
@@ -62,11 +62,11 @@ impl<const REV: bool> Side<REV> {
6262 }
6363 }
6464
65- fn search ( & self , order : & Order ) -> Result < usize , usize > {
65+ fn search ( & self , order : Order ) -> Result < usize , usize > {
6666 if REV {
67- self . vec . binary_search_by ( |o| order. price . cmp ( & o. price ) )
67+ self . vec . binary_search_by ( |& o| order. price . cmp ( & o. price ) )
6868 } else {
69- self . vec . binary_search_by ( |o| o. price . cmp ( & order. price ) )
69+ self . vec . binary_search_by ( |& o| o. price . cmp ( & order. price ) )
7070 }
7171 }
7272}
@@ -107,11 +107,11 @@ mod tests {
107107 let order2 = Order { price : dec ! ( 2.0 ) , size : dec ! ( 52.3 ) } ;
108108 let order2_5 = Order { price : dec ! ( 2.5 ) , size : dec ! ( 44.0 ) } ;
109109
110- side. diff_update ( order2. clone ( ) ) ;
111- side. diff_update ( order1. clone ( ) ) ;
112- side. diff_update ( order0_5. clone ( ) ) ;
113- side. diff_update ( order2_5. clone ( ) ) ;
114- side. diff_update ( order1_5. clone ( ) ) ;
110+ side. diff_update ( order2) ;
111+ side. diff_update ( order1) ;
112+ side. diff_update ( order0_5) ;
113+ side. diff_update ( order2_5) ;
114+ side. diff_update ( order1_5) ;
115115
116116 assert_eq ! ( side. vec, vec![ order0_5, order1, order1_5] ) ;
117117 }
0 commit comments