#![feature(array_try_map)]
#![feature(default_field_values)]
#![feature(error_generic_member_access)]
#![feature(formatting_options)]
#![feature(try_blocks)]
#![feature(const_default)]
#![cfg_attr(docsrs, feature(doc_cfg))]
pub extern crate v_exchanges_adapters as adapters;
pub use v_exchanges_core::{Price, Qty};
pub use v_utils::trades::Timestamped;
pub mod core;
#[allow(unused_assignments)]
pub mod error;
pub mod prelude {
pub use std::{
collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque},
fmt::Write as _,
pin::Pin,
str::FromStr as _, sync::{Arc, Mutex, RwLock},
};
pub use adapters::generics::RetryConfig;
pub use eyre::{OptionExt as _, Report, Result, WrapErr as _, bail, eyre};
pub use futures_util::future::join_all;
pub use serde::{
Deserialize, Serialize, Serializer,
de::{DeserializeOwned, Deserializer},
};
pub use serde_json::{Value, json};
pub use thiserror::Error;
pub use tracing::{Span, debug, error, field::Empty, info, instrument, trace, warn};
pub use v_utils::trades::*;
#[cfg(feature = "binance")]
pub use crate::binance::Binance;
#[cfg(feature = "data")]
pub use crate::bitmex::Bitmex;
#[cfg(feature = "bybit")]
pub use crate::bybit::Bybit;
#[cfg(feature = "kucoin")]
pub use crate::kucoin::Kucoin;
#[cfg(feature = "mexc")]
pub use crate::mexc::Mexc;
#[cfg(feature = "data")]
pub use crate::yahoo::*;
pub use crate::{Price, Qty, Timestamped, core::*, error::*, orders::*, other_types::*};
}
#[cfg(feature = "binance")]
#[cfg_attr(docsrs, doc(cfg(feature = "binance")))]
pub mod binance;
#[cfg(feature = "bybit")]
#[cfg_attr(docsrs, doc(cfg(feature = "bybit")))]
pub mod bybit;
#[cfg(feature = "kucoin")]
#[cfg_attr(docsrs, doc(cfg(feature = "kucoin")))]
pub mod kucoin;
#[cfg(feature = "mexc")]
#[cfg_attr(docsrs, doc(cfg(feature = "mexc")))]
pub mod mexc;
pub mod orders;
pub(crate) mod other_types;
pub use prelude::*;
pub(crate) mod utils;
cfg_if::cfg_if! {
if #[cfg(feature = "data")] {
pub mod bitmex;
pub mod yahoo;
}
}