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§
Sourcefn as_any(&self) -> &dyn Any
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".