Skip to main content

gmsol_model/
lib.rs

1#![deny(missing_docs)]
2#![deny(unreachable_pub)]
3#![warn(clippy::arithmetic_side_effects)]
4#![cfg_attr(docsrs, feature(doc_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/// GLV calculations.
45#[cfg(feature = "glv")]
46pub mod glv;
47
48/// Utils for testing.
49#[cfg(any(test, feature = "test"))]
50pub mod test;
51
52pub use action::MarketAction;
53pub use bank::Bank;
54pub use clock::ClockKind;
55pub use error::Error;
56pub use market::{
57    BaseMarket, BaseMarketExt, BaseMarketMut, BaseMarketMutExt, BorrowingFeeMarket,
58    BorrowingFeeMarketExt, BorrowingFeeMarketMut, BorrowingFeeMarketMutExt, LiquidityMarket,
59    LiquidityMarketExt, LiquidityMarketMut, LiquidityMarketMutExt, PerpMarket, PerpMarketExt,
60    PerpMarketMut, PerpMarketMutExt, PnlFactorKind, PositionImpactMarket, PositionImpactMarketExt,
61    PositionImpactMarketMut, PositionImpactMarketMutExt, SwapMarket, SwapMarketExt, SwapMarketMut,
62    SwapMarketMutExt,
63};
64pub use pool::{Balance, BalanceExt, Delta, Pool, PoolExt, PoolKind};
65pub use position::{
66    Position, PositionExt, PositionMut, PositionMutExt, PositionState, PositionStateExt,
67    PositionStateMut,
68};
69
70/// Alias for result.
71pub type Result<T> = std::result::Result<T, Error>;
72
73pub use num_traits;