phoenix/state/markets/
market_wrapper.rs

1use super::{Market, WritableMarket};
2
3/// Struct that holds an object implementing the WritableMarket trait.
4pub(crate) struct MarketWrapperMut<
5    'a,
6    MarketTraderId,
7    MarketOrderId,
8    MarketRestingOrder,
9    MarketOrderPacket,
10> {
11    pub inner: &'a mut dyn WritableMarket<
12        MarketTraderId,
13        MarketOrderId,
14        MarketRestingOrder,
15        MarketOrderPacket,
16    >,
17}
18
19impl<'a, MarketTraderId, MarketOrderPacket, MarketRestingOrder, MarketOrderId>
20    MarketWrapperMut<'a, MarketTraderId, MarketOrderId, MarketRestingOrder, MarketOrderPacket>
21{
22    pub(crate) fn new(
23        market: &'a mut dyn WritableMarket<
24            MarketTraderId,
25            MarketOrderId,
26            MarketRestingOrder,
27            MarketOrderPacket,
28        >,
29    ) -> Self {
30        Self { inner: market }
31    }
32}
33
34/// Struct that holds an object implementing the Market trait.
35pub struct MarketWrapper<'a, MarketTraderId, MarketOrderId, MarketRestingOrder, MarketOrderPacket> {
36    pub inner: &'a dyn Market<MarketTraderId, MarketOrderId, MarketRestingOrder, MarketOrderPacket>,
37}
38
39impl<'a, MarketTraderId, MarketOrderId, MarketRestingOrder, MarketOrderPacket>
40    MarketWrapper<'a, MarketTraderId, MarketOrderId, MarketRestingOrder, MarketOrderPacket>
41{
42    pub fn new(
43        market: &'a dyn Market<
44            MarketTraderId,
45            MarketOrderId,
46            MarketRestingOrder,
47            MarketOrderPacket,
48        >,
49    ) -> Self {
50        Self { inner: market }
51    }
52}