apple-quant-algorithmic 0.4.0

Apple Quant's algorithmic library.
Documentation
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();
	}
}