pub mod deposit;
pub mod withdraw;
pub mod swap;
pub mod increase_position;
pub mod decrease_position;
pub mod distribute_position_impact;
pub mod update_borrowing_state;
pub mod update_funding_state;
#[must_use = "actions do nothing unless you `execute` them"]
pub trait MarketAction {
type Report;
fn execute(self) -> crate::Result<Self::Report>;
}