1mod bar;
2mod library;
3mod output;
4mod series_buffer;
5mod syminfo;
6mod timeframe;
7mod version;
8
9pub use bar::{Bar, Data, Ohlcv};
10pub use library::{FileResolver, LibraryLoader};
11pub use output::{
12 AlertCondition, AlertConditionOutput, BoxOutput, Color, DefaultPineOutput, FillObject,
13 FillOutput, GlobalContext, GlobalOutput, Indicator, IndicatorOutput, Input, InputOutput,
14 InputValue, Label, LabelOutput, LineObject, LineOutput, LogEntry, LogLevel, LogOutput, PineBox,
15 PineOutput, Plot, PlotOutput, Plotarrow, Plotbar, Plotcandle, Plotchar, Plotshape, Table,
16 TableCell, TableOutput,
17};
18pub use series_buffer::{SeriesBuffer, MAX_LOOKBACK};
19pub use syminfo::SymInfo;
20pub use timeframe::{Timeframe, TimeframeError, TimeframeUnit};
21pub use version::{PineVersion, VersionError};
22
23pub type ProviderError = Box<dyn std::error::Error + Send + Sync>;
25
26pub trait DataProvider {
29 fn request(&self, symbol: &str, timeframe: Timeframe) -> Result<Data, ProviderError>;
30}