gmsol_model/action/mod.rs
1/// Deposit.
2pub mod deposit;
3
4/// Withdraw.
5pub mod withdraw;
6
7/// Swap.
8pub mod swap;
9
10/// Increase Position.
11pub mod increase_position;
12
13/// Decrease Position.
14pub mod decrease_position;
15
16/// Distribute position impact.
17pub mod distribute_position_impact;
18
19/// Update borrowing state.
20pub mod update_borrowing_state;
21
22/// Update funding state.
23pub mod update_funding_state;
24
25/// Market Action.
26#[must_use = "actions do nothing unless you `execute` them"]
27pub trait MarketAction {
28 /// The type of the execution report of the action.
29 type Report;
30
31 /// Execute.
32 fn execute(self) -> crate::Result<Self::Report>;
33}