Skip to content

Commit 7985643

Browse files
committed
market itself
1 parent 945da81 commit 7985643

File tree

2 files changed

+40
-40
lines changed

2 files changed

+40
-40
lines changed

v_exchanges/src/core.rs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use chrono::{DateTime, TimeDelta, Utc};
44
use derive_more::{Deref, DerefMut};
55
use eyre::{Report, Result};
66
use v_utils::trades::{Asset, Kline, Pair, Timeframe};
7+
use crate::{binance, bybit};
78

89
//TODO!!!!!!!!!!!!!: klines switch to defining the range via an Enum over either limit either start and end times
910

@@ -147,3 +148,42 @@ pub struct AssetBalance {
147148
//margin_available: bool,
148149
pub timestamp: i64,
149150
}
151+
152+
#[derive(Debug, Clone, Copy)]
153+
pub enum Market {
154+
Binance(binance::Market),
155+
Bybit(bybit::Market),
156+
//TODO
157+
}
158+
impl Default for Market {
159+
fn default() -> Self {
160+
Self::Binance(binance::Market::default())
161+
}
162+
}
163+
164+
impl std::fmt::Display for Market {
165+
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
166+
match self {
167+
Market::Binance(m) => write!(f, "Binance/{}", m),
168+
Market::Bybit(m) => write!(f, "Bybit/{}", m),
169+
}
170+
}
171+
}
172+
173+
impl std::str::FromStr for Market {
174+
type Err = eyre::Error;
175+
176+
fn from_str(s: &str) -> Result<Self> {
177+
let parts: Vec<&str> = s.split('/').collect();
178+
if parts.len() != 2 {
179+
return Err(eyre::eyre!("Invalid market string: {}", s));
180+
}
181+
let market = parts[0];
182+
let exchange = parts[1];
183+
match market.to_lowercase().as_str() {
184+
"binance" => Ok(Self::Binance(exchange.parse()?)),
185+
"bybit" => Ok(Self::Bybit(exchange.parse()?)),
186+
_ => Err(eyre::eyre!("Invalid market string: {}", s)),
187+
}
188+
}
189+
}

v_exchanges/src/lib.rs

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -10,43 +10,3 @@ pub use bybit::Bybit;
1010

1111
pub mod bitmex;
1212
pub use bitmex::Bitmex;
13-
use eyre::Result;
14-
15-
#[derive(Debug, Clone, Copy)]
16-
pub enum Market {
17-
Binance(binance::Market),
18-
Bybit(bybit::Market),
19-
//TODO
20-
}
21-
impl Default for Market {
22-
fn default() -> Self {
23-
Self::Binance(binance::Market::default())
24-
}
25-
}
26-
27-
impl std::fmt::Display for Market {
28-
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
29-
match self {
30-
Market::Binance(m) => write!(f, "Binance/{}", m),
31-
Market::Bybit(m) => write!(f, "Bybit/{}", m),
32-
}
33-
}
34-
}
35-
36-
impl std::str::FromStr for Market {
37-
type Err = eyre::Error;
38-
39-
fn from_str(s: &str) -> Result<Self> {
40-
let parts: Vec<&str> = s.split('/').collect();
41-
if parts.len() != 2 {
42-
return Err(eyre::eyre!("Invalid market string: {}", s));
43-
}
44-
let market = parts[0];
45-
let exchange = parts[1];
46-
match market.to_lowercase().as_str() {
47-
"binance" => Ok(Self::Binance(exchange.parse()?)),
48-
"bybit" => Ok(Self::Bybit(exchange.parse()?)),
49-
_ => Err(eyre::eyre!("Invalid market string: {}", s)),
50-
}
51-
}
52-
}

0 commit comments

Comments
 (0)