Trait MarketAction

Source
pub trait MarketAction {
    type Report;

    // Required method
    fn execute(self) -> Result<Self::Report>;
}
Expand description

Market Action.

Required Associated Types§

Source

type Report

The type of the execution report of the action.

Required Methods§

Source

fn execute(self) -> Result<Self::Report>

Execute.

Implementors§

Source§

impl<M: BorrowingFeeMarketMut<DECIMALS>, const DECIMALS: u8> MarketAction for UpdateBorrowingState<M, DECIMALS>

Source§

impl<M: PerpMarketMut<DECIMALS>, const DECIMALS: u8> MarketAction for UpdateFundingState<M, DECIMALS>

Source§

type Report = UpdateFundingReport<<M as BaseMarket<DECIMALS>>::Num, <<M as BaseMarket<DECIMALS>>::Num as Unsigned>::Signed>

Source§

impl<M: PositionImpactMarketMut<DECIMALS>, const DECIMALS: u8> MarketAction for DistributePositionImpact<M, DECIMALS>

Source§

impl<const DECIMALS: u8, M> MarketAction for Deposit<M, DECIMALS>
where M: LiquidityMarketMut<DECIMALS>,

Source§

type Report = DepositReport<<M as BaseMarket<DECIMALS>>::Num, <<M as BaseMarket<DECIMALS>>::Num as Unsigned>::Signed>

Source§

impl<const DECIMALS: u8, M> MarketAction for Swap<M, DECIMALS>
where M: SwapMarketMut<DECIMALS>,

Source§

type Report = SwapReport<<M as BaseMarket<DECIMALS>>::Num, <<M as BaseMarket<DECIMALS>>::Num as Unsigned>::Signed>

Source§

impl<const DECIMALS: u8, M: LiquidityMarketMut<DECIMALS>> MarketAction for Withdrawal<M, DECIMALS>

Source§

type Report = WithdrawReport<<M as BaseMarket<DECIMALS>>::Num>

Source§

impl<const DECIMALS: u8, P: PositionMut<DECIMALS>> MarketAction for DecreasePosition<P, DECIMALS>
where P::Market: PerpMarketMut<DECIMALS, Num = P::Num, Signed = P::Signed>,

Source§

type Report = Box<DecreasePositionReport<<P as PositionState<DECIMALS>>::Num, <P as PositionState<DECIMALS>>::Signed>>

Source§

impl<const DECIMALS: u8, P: PositionMut<DECIMALS>> MarketAction for IncreasePosition<P, DECIMALS>
where P::Market: PerpMarketMut<DECIMALS, Num = P::Num, Signed = P::Signed>,

Source§

type Report = IncreasePositionReport<<P as PositionState<DECIMALS>>::Num, <P as PositionState<DECIMALS>>::Signed>