use crate::core::types::{
AccountType, ConnectorStats, ExchangeId, ExchangeType, RateLimitCapabilities,
};
pub trait ExchangeIdentity: Send + Sync {
fn exchange_id(&self) -> ExchangeId;
fn exchange_name(&self) -> &'static str {
self.exchange_id().as_str()
}
fn is_testnet(&self) -> bool;
fn supported_account_types(&self) -> Vec<AccountType>;
fn exchange_type(&self) -> ExchangeType {
self.exchange_id().exchange_type()
}
fn metrics(&self) -> ConnectorStats {
ConnectorStats::default()
}
fn rate_limit_capabilities(&self) -> RateLimitCapabilities {
RateLimitCapabilities::permissive()
}
}