pub struct Context<'a, O> {
order: &'a O,
}
impl<'a, O> Context<'a, O> {
pub fn order(&self) -> &O {
self.order
}
pub(crate) fn new(order: &'a O) -> Self {
Self { order }
}
}
#[cfg(test)]
mod tests {
use crate::core::OrderOperation;
use crate::param::{Asset, Quantity, Side, TradeAmount};
use super::Context;
#[test]
fn stores_order_reference() {
let order = OrderOperation {
instrument: crate::Instrument::new(
Asset::new("AAPL").expect("asset code must be valid"),
Asset::new("USD").expect("asset code must be valid"),
),
side: Side::Buy,
trade_amount: TradeAmount::Quantity(
Quantity::from_str("10").expect("quantity must be valid"),
),
price: None,
};
let ctx = Context::new(&order);
assert_eq!(ctx.order().trade_amount, order.trade_amount);
}
}