Skip to main content

CoreConnector

Trait CoreConnector 

Source
pub trait CoreConnector:
    ExchangeIdentity
    + MarketData
    + MarketDataPublic
    + Trading
    + Account
    + Positions
    + CancelAll
    + AmendOrder
    + BatchOrders
    + AccountTransfers
    + CustodialFunds
    + SubAccounts
    + FundingHistory
    + AccountLedger
    + HasCapabilities
    + Send
    + Sync
    + 'static {
    // Required method
    fn as_any(&self) -> &dyn Any;
}
Expand description

Full core connector

Combines all core traits. Used for generic code that works with any exchange.

§Example

async fn check_balance<C: CoreConnector>(conn: &C) -> Result<()> {
    let balance = conn.get_balance(BalanceQuery { asset: None, account_type: AccountType::Spot }).await?;
    let price = conn.get_price(Symbol::new("BTC", "USDT"), AccountType::Spot).await?;
    Ok(())
}

Required Methods§

Source

fn as_any(&self) -> &dyn Any

Downcast to a concrete connector for exchange-specific inherent methods.

Example:

let conn = pool.get(&ExchangeId::Binance)?;
if let Some(binance) = conn.as_any().downcast_ref::<BinanceConnector>() {
    let basis = binance.get_basis_history("BTCUSDT", "PERPETUAL", "5m", None, None, None).await?;
}

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§