binance-common 0.2.3

Common data structures, error types, and utilities shared across Binance API crates.
Documentation
pub enum Market {
    Ping,
    ServerTime,
    ExchangeInfo,
    Depth,
    Trades,
    HistoricalTrades,
    AggregateTrades,
    Klines,
    MarkPrice,
    FundingRateHistory,
    FundingInfo,
    Ticker24h,
    TickerPrice,
    TickerPriceV2,
    BookTicker,
    DeliveryPrice,
    OpenInterest,
    OpenInterestHistory,
    TopLongShortPositionRatio,
    TopLongShortAccountRatio,
    GlobalLongShortAccountRatio,
    TakerBuySellVolume,
    Basis,
}

impl AsRef<str> for Market {
    fn as_ref(&self) -> &'static str {
        match self {
            Market::Ping => "/fapi/v1/ping?",
            Market::ServerTime => "/fapi/v1/time?",
            Market::ExchangeInfo => "/fapi/v1/exchangeInfo?",
            Market::Depth => "/fapi/v1/depth?",
            Market::Trades => "/fapi/v1/trades?",
            Market::HistoricalTrades => "/fapi/v1/historicalTrades?",
            Market::AggregateTrades => "/fapi/v1/aggTrades?",
            Market::Klines => "/fapi/v1/klines?",
            Market::MarkPrice => "/fapi/v1/premiumIndex?",
            Market::FundingRateHistory => "/fapi/v1/fundingRate?",
            Market::FundingInfo => "/fapi/v1/fundingInfo?",
            Market::Ticker24h => "/fapi/v1/ticker/24hr?",
            Market::TickerPrice => "/fapi/v1/ticker/price?",
            Market::TickerPriceV2 => "/fapi/v2/ticker/price?",
            Market::BookTicker => "/fapi/v1/ticker/bookTicker?",
            Market::DeliveryPrice => "/futures/data/delivery-price?",
            Market::OpenInterest => "/fapi/v1/openInterest?",
            Market::OpenInterestHistory => "/futures/data/openInterestHist?",
            Market::TopLongShortPositionRatio => "/futures/data/topLongShortPositionRatio?",
            Market::TopLongShortAccountRatio => "/futures/data/topLongShortAccountRatio?",
            Market::GlobalLongShortAccountRatio => "/futures/data/globalLongShortAccountRatio?",
            Market::TakerBuySellVolume => "/futures/data/takerlongshortRatio?",
            Market::Basis => "/futures/data/basis?",
        }
    }
}

pub enum Trade {
    NewOrder,
    MultipleOrders,
    ModifyOrder,
    ModifyMultipleOrders,
    OrderModificationHistory,
    CancelOrder,
    CancelMultipleOrders,
    CancelAllOrders,
    AutoCancelAllOpenOrders,
    GetOrder,
    AllOrders,
    OpenOrders,
    GetOpenOrder,
    ForceOrders,
    UserTrades,
    SetMarginType,
    SetPositionSide,
    SetLeverage,
    SetMultiAssetsMargin,
    UpdatePositionMargin,
    PositionRiskV2,
    PositionRiskV3,
    GetPositionMarginHistory,
    TestNewOrder,
}

impl AsRef<str> for Trade {
    fn as_ref(&self) -> &'static str {
        match self {
            Trade::NewOrder => "/fapi/v1/order?",
            Trade::MultipleOrders => "/fapi/v1/batchOrders?",
            Trade::ModifyOrder => "/fapi/v1/order?",
            Trade::ModifyMultipleOrders => "/fapi/v1/amendBatchOrders?",
            Trade::OrderModificationHistory => "/fapi/v1/orderAmendmentHistory?",
            Trade::CancelOrder => "/fapi/v1/order?",
            Trade::CancelMultipleOrders => "/fapi/v1/cancelBatchOrders?",
            Trade::CancelAllOrders => "/fapi/v1/allOpenOrders?",
            Trade::AutoCancelAllOpenOrders => "/fapi/v1/autoCancelAllOpenOrders?",
            Trade::GetOrder => "/fapi/v1/order?",
            Trade::AllOrders => "/fapi/v1/allOrders?",
            Trade::OpenOrders => "/fapi/v1/openOrders?",
            Trade::GetOpenOrder => "/fapi/v1/openOrder?",
            Trade::ForceOrders => "/fapi/v1/forceOrders?",
            Trade::UserTrades => "/fapi/v1/userTrades?",
            Trade::SetMarginType => "/fapi/v1/marginType?symbol=",
            Trade::SetPositionSide => "/fapi/v1/positionSide/dual?",
            Trade::SetLeverage => "/fapi/v1/leverage?",
            Trade::SetMultiAssetsMargin => "/vapi/multiAssetsMargin?symbol=",
            Trade::UpdatePositionMargin => "/vapi/updatePositionMargin?symbol=",
            Trade::PositionRiskV2 => "/fapi/v2/positionRisk?",
            Trade::PositionRiskV3 => "/fapi/v3/positionRisk?",
            Trade::GetPositionMarginHistory => "/vapi/positionMarginHistory?symbol=",
            Trade::TestNewOrder => "/fapi/v1/order/test?",
        }
    }
}

pub enum Account {
    NewTransfer,
    FuturesBalance,
    FuturesBalanceV3,
    FuturesAccount,
    TransactionHistory,
    CommissionRate,
    Configuration,
    SymbolConfiguration,
    OrderRateLimit,
    LeverageBracket,
    MultiAssetsMargin,
    PositionSide,
    IncomeHistory,
}

impl AsRef<str> for Account {
    fn as_ref(&self) -> &'static str {
        match self {
            Account::NewTransfer => "/fapi/v1/transfer?",
            Account::FuturesBalance => "/fapi/v2/balance?",
            Account::FuturesBalanceV3 => "/fapi/v3/balance?",
            Account::FuturesAccount => "/fapi/v3/account?",
            Account::TransactionHistory => "/fapi/v1/transactionHistory?",
            Account::CommissionRate => "/fapi/v1/commissionRate?",
            Account::Configuration => "/fapi/v1/configuration?",
            Account::SymbolConfiguration => "/fapi/v1/symbolConfiguration?symbol=",
            Account::OrderRateLimit => "/fapi/v1/orderRateLimit?symbol=",
            Account::LeverageBracket => "/fapi/v1/leverageBracket?symbol=",
            Account::MultiAssetsMargin => "/vapi/multiAssetsMarginConfig?symbol=",
            Account::PositionSide => "/fapi/v1/positionSide/dual?",
            Account::IncomeHistory => "/fapi/v1/income?",
        }
    }
}