use thingbuf::Recycle;
use crate::{
aggregation::TradeTradeTimestampListInline, instrument::InstrumentSpec,
order::OrderStateUpdateListInline,
};
pub struct OrdersBackendUpdate<IS: InstrumentSpec> {
pub(crate) trades: TradeTradeTimestampListInline<IS, 8>,
pub(crate) order_state_updates: OrderStateUpdateListInline<IS, 4>,
}
impl<IS: InstrumentSpec> Default for OrdersBackendUpdate<IS> {
fn default() -> Self {
Self {
trades: TradeTradeTimestampListInline::default(),
order_state_updates: OrderStateUpdateListInline::default(),
}
}
}
pub struct OrdersBackendUpdateRecycle;
impl<IS: InstrumentSpec> Recycle<OrdersBackendUpdate<IS>> for OrdersBackendUpdateRecycle {
fn new_element(
&self,
) -> OrdersBackendUpdate<IS> {
OrdersBackendUpdate::default()
}
fn recycle(
&self,
element: &mut OrdersBackendUpdate<IS>,
) {
element.order_state_updates.clear();
element.trades.clear();
}
}