use std::range::Range;
use time::{Date, UtcDateTime};
use crate::{
instrument::{InstrumentSpec, InstrumentTicker},
aggregation::TradeTradeTimestamp,
};
pub trait HistoricalDataBackend<IS: InstrumentSpec> {
fn fetch_once(
&mut self,
instrument_ticker: &InstrumentTicker,
utc_date_time_range: Range<UtcDateTime>,
) -> impl Future<Output = impl IntoIterator<Item = TradeTradeTimestamp<IS>>>;
fn fetch_save_day(
&mut self,
instrument_ticker: &InstrumentTicker,
date: Date,
) -> impl Future<Output = impl IntoIterator<Item = TradeTradeTimestamp<IS>>>;
}