apple_quant_algorithmic/backend/orders/
update.rs1use thingbuf::Recycle;
2
3use crate::{
4 aggregation::TradeTradeTimestampListInline, instrument::InstrumentSpec,
5 order::OrderStateUpdateListInline,
6};
7
8pub struct OrdersBackendUpdate<IS: InstrumentSpec> {
9 pub(crate) trades: TradeTradeTimestampListInline<IS, 8>,
10 pub(crate) order_state_updates: OrderStateUpdateListInline<IS, 4>,
11}
12
13impl<IS: InstrumentSpec> Default for OrdersBackendUpdate<IS> {
14 fn default() -> Self {
15 Self {
16 trades: TradeTradeTimestampListInline::default(),
17 order_state_updates: OrderStateUpdateListInline::default(),
18 }
19 }
20}
21
22pub struct OrdersBackendUpdateRecycle;
23
24impl<IS: InstrumentSpec> Recycle<OrdersBackendUpdate<IS>> for OrdersBackendUpdateRecycle {
25 fn new_element(
26 &self,
27 ) -> OrdersBackendUpdate<IS> {
28 OrdersBackendUpdate::default()
29 }
30
31 fn recycle(
32 &self,
33 element: &mut OrdersBackendUpdate<IS>,
34 ) {
35 element.order_state_updates.clear();
36 element.trades.clear();
37 }
38}