pub mod control;
pub mod read;
pub mod reply;
pub use control::{Ack, Method, Refusal};
pub use read::{BadFrame, decode};
pub use reply::{Answer, Reply};
use crate::account::ActiveAssetData;
use crate::live::{
AllDexsState, Bbo, DexState, HistoricalOrders, Ledger, Mids, OpenOrders, OrderUpdate, SpotState, TwapHistory,
TwapSliceFills, TwapStates, UserEvent, UserFills, UserFundings, WebData3,
};
use crate::markets::context::{PerpCtx, SpotCtx};
use crate::markets::{Book, Candle, Trade};
use crate::utils::Json;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Frame {
Pong,
Ack(Ack),
Error(Refusal),
Post(Reply),
AllMids(Mids),
Book(Book),
Trades(Vec<Trade>),
Bbo(Bbo),
Candle(Candle),
AssetCtx {
coin: String,
ctx: PerpCtx,
},
SpotAssetCtx {
coin: String,
ctx: SpotCtx,
},
AssetData(ActiveAssetData),
UserFills(UserFills),
OrderUpdates(Vec<OrderUpdate>),
UserEvent(UserEvent),
UserFundings(UserFundings),
Ledger(Ledger),
ClearinghouseState(DexState),
AllDexsClearinghouseState(AllDexsState),
OpenOrders(OpenOrders),
SpotState(SpotState),
TwapStates(TwapStates),
TwapSliceFills(TwapSliceFills),
TwapHistory(TwapHistory),
Notification(String),
WebData3(WebData3),
AllDexsAssetCtxs(Vec<(String, Vec<PerpCtx>)>),
AssetCtxs {
dex: String,
ctxs: Vec<PerpCtx>,
},
SpotAssetCtxs(Vec<SpotCtx>),
OutcomeMetaUpdates(Json),
FastAssetCtxs(String),
HistoricalOrders(HistoricalOrders),
Other {
channel: String,
data: String,
},
}