candles-rs 0.1.4

A Rust library for fetching candlestick (OHLCV) data from multiple cryptocurrency exchanges including Binance, OKX, Bybit, BloFin, and BingX.
Documentation
use serde::{Deserialize, Serialize};
use strum::{Display, EnumString};

use crate::{
    base::BaseConnection,
    binance::main::Binance,
    bingx::main::BingX,
    blofin::main::BloFin,
    bybit::main::Bybit,
    errors::CandlesError,
    htx::main::HTX,
    mexc::main::Mexc,
    okx::main::OKX,
    types::{Candle, Instrument},
};

#[derive(Hash, PartialEq, Eq, Debug, Display, EnumString, Serialize, Deserialize, Clone)]
#[serde(rename_all = "lowercase")]
#[strum(serialize_all = "lowercase")]
pub enum Connection {
    Binance,
    OKX,
    BloFin,
    Bybit,
    BingX,
    HTX,
    Mexc,
}

impl Connection {
    pub async fn get_candles(&self, instrument: Instrument) -> Result<Vec<Candle>, CandlesError> {
        match self {
            Connection::Binance => Binance::get_candles(instrument).await,
            Connection::OKX => OKX::get_candles(instrument).await,
            Connection::BloFin => BloFin::get_candles(instrument).await,
            Connection::Bybit => Bybit::get_candles(instrument).await,
            Connection::BingX => BingX::get_candles(instrument).await,
            Connection::HTX => HTX::get_candles(instrument).await,
            Connection::Mexc => Mexc::get_candles(instrument).await,
        }
    }
}