gmsol_model/
lib.rs

1#![deny(missing_docs)]
2#![deny(unreachable_pub)]
3#![warn(clippy::arithmetic_side_effects)]
4#![cfg_attr(docsrs, feature(doc_auto_cfg))]
5
6//! A Rust implementation of GMX V2 Model.
7
8/// Pool.
9pub mod pool;
10
11/// Market.
12pub mod market;
13
14/// Bank.
15pub mod bank;
16
17/// Clock.
18pub mod clock;
19
20/// Position.
21pub mod position;
22
23/// Price.
24pub mod price;
25
26/// Market params.
27pub mod params;
28
29/// Actions.
30pub mod action;
31
32/// Error type.
33pub mod error;
34
35/// Number utils.
36pub mod num;
37
38/// Fixed-point decimal type.
39pub mod fixed;
40
41/// Utils.
42pub mod utils;
43
44/// Utils for testing.
45#[cfg(any(test, feature = "test"))]
46pub mod test;
47
48pub use action::MarketAction;
49pub use bank::Bank;
50pub use clock::ClockKind;
51pub use error::Error;
52pub use market::{
53    BaseMarket, BaseMarketExt, BaseMarketMut, BaseMarketMutExt, BorrowingFeeMarket,
54    BorrowingFeeMarketExt, BorrowingFeeMarketMut, BorrowingFeeMarketMutExt, LiquidityMarket,
55    LiquidityMarketExt, LiquidityMarketMut, LiquidityMarketMutExt, PerpMarket, PerpMarketExt,
56    PerpMarketMut, PerpMarketMutExt, PnlFactorKind, PositionImpactMarket, PositionImpactMarketExt,
57    PositionImpactMarketMut, PositionImpactMarketMutExt, SwapMarket, SwapMarketExt, SwapMarketMut,
58    SwapMarketMutExt,
59};
60pub use pool::{Balance, BalanceExt, Delta, Pool, PoolExt, PoolKind};
61pub use position::{
62    Position, PositionExt, PositionMut, PositionMutExt, PositionState, PositionStateExt,
63    PositionStateMut,
64};
65
66/// Alias for result.
67pub type Result<T> = std::result::Result<T, Error>;
68
69pub use num_traits;