Skip to content

Commit 985cc79

Browse files
committed
make Order: Copy
1 parent 9124fce commit 985cc79

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

src/book.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use rust_decimal::Decimal;
22

3-
#[derive(Debug, Clone, PartialEq, Eq)]
3+
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
44
pub 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
}

src/exchanges/binance/spot.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ use tokio::sync::mpsc;
1717
struct Update(Decimal, Decimal);
1818

1919
impl From<Update> for Order {
20-
fn from(value: Update) -> Self {
21-
Order {
22-
price: value.0,
23-
size: value.1,
20+
fn from(update: Update) -> Self {
21+
Self {
22+
price: update.0,
23+
size: update.1,
2424
}
2525
}
2626
}

src/latency_meter.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ impl LatencyMeter {
3636
if !vec.is_empty() {
3737
let mean = vec.iter().sum::<Duration>() / vec.len() as u32;
3838
log::warning!("{prefix} high latency - {mean:?} ({} events)", vec.len());
39-
39+
4040
vec.clear();
4141
}
4242
}

0 commit comments

Comments
 (0)