use crate::param::{Price, Quantity};
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct Trade {
pub price: Price,
pub quantity: Quantity,
}
impl std::fmt::Display for Trade {
fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(formatter, "{} @ {}", self.quantity, self.price)
}
}
#[cfg(test)]
mod tests {
use crate::param::{Price, Quantity};
use super::Trade;
#[test]
fn display_formats_quantity_at_price() {
let trade = Trade {
price: Price::from_str("185.5").expect("must be valid"),
quantity: Quantity::from_str("10").expect("must be valid"),
};
assert_eq!(trade.to_string(), "10 @ 185.5");
}
}