Skip to main content

tvdata_rs/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_debug_implementations)]
3#![doc = include_str!("../README.snippet.md")]
4
5pub mod batch;
6pub mod client;
7pub mod error;
8pub mod history;
9pub mod metadata;
10pub mod scanner;
11pub mod time_series;
12mod transport;
13
14#[cfg(feature = "calendar")]
15pub mod calendar;
16#[cfg(feature = "crypto")]
17pub mod crypto;
18#[cfg(feature = "economics")]
19pub mod economics;
20#[cfg(feature = "equity")]
21pub mod equity;
22#[cfg(feature = "forex")]
23pub mod forex;
24#[cfg(any(
25    feature = "calendar",
26    feature = "crypto",
27    feature = "equity",
28    feature = "forex"
29))]
30mod market_data;
31#[cfg(feature = "search")]
32pub mod search;
33
34pub use batch::{BatchResult, SymbolFailure};
35#[cfg(feature = "calendar")]
36pub use calendar::{
37    CalendarWindowRequest, DividendCalendarEntry, DividendCalendarRequest, DividendDateKind,
38    EarningsCalendarEntry, IpoCalendarEntry,
39};
40pub use client::{
41    AuthConfig, AuthMode, ClientEvent, ClientObserver, DefaultWebSocketConnector, Endpoints,
42    HistoryBatchCompletedEvent, HistoryBatchMode, HistoryClientConfig, HttpRequestCompletedEvent,
43    HttpRequestFailedEvent, RequestBudget, RetryConfig, RetryJitter, TradingViewClient,
44    TradingViewClientConfig, TransportConfig, WebSocketConnectFuture, WebSocketConnectedEvent,
45    WebSocketConnectionFailedEvent, WebSocketConnector,
46};
47#[cfg(feature = "crypto")]
48pub use crypto::{CryptoClient, CryptoOverview};
49#[cfg(feature = "economics")]
50pub use economics::{
51    EconomicCalendarRequest, EconomicCalendarResponse, EconomicEvent, EconomicValue,
52};
53#[cfg(feature = "equity")]
54pub use equity::{
55    AnalystForecasts, AnalystFxRates, AnalystPriceTargets, AnalystRecommendations, AnalystSummary,
56    EarningsCalendar, EarningsMetrics, EquityClient, EquityOverview, EstimateHistory,
57    EstimateMetrics, EstimateObservation, FundamentalMetrics, FundamentalObservation,
58    FundamentalsSnapshot, PointInTimeFundamentals,
59};
60pub use error::{Error, ErrorKind, Result};
61#[cfg(feature = "forex")]
62pub use forex::{ForexClient, ForexOverview};
63pub use history::{
64    Adjustment, Bar, BarSelectionPolicy, DailyBarRangeRequest, DailyBarRequest,
65    HistoryBatchRequest, HistoryProvenance, HistoryRequest, HistorySeries, Interval,
66    TradingSession,
67};
68#[cfg(feature = "equity")]
69pub use market_data::ConversionRatesSnapshot;
70#[cfg(any(
71    feature = "calendar",
72    feature = "crypto",
73    feature = "equity",
74    feature = "forex"
75))]
76pub use market_data::InstrumentIdentity;
77#[cfg(any(feature = "crypto", feature = "equity", feature = "forex"))]
78pub use market_data::{QuoteSnapshot, TechnicalSummary};
79pub use metadata::{DataLineage, DataSourceKind, HistoryKind};
80pub use scanner::{
81    HeuristicSymbolNormalizer, InstrumentRef, PartiallySupportedColumn, ScanValidationReport,
82    ScannerFieldMetainfo, ScannerFieldType, ScannerMetainfo, SymbolNormalizer,
83};
84#[cfg(feature = "search")]
85pub use search::{SearchAssetClass, SearchHit, SearchRequest, SearchResponse};
86pub use time_series::{FiscalPeriod, HistoricalObservation};
87pub use transport::websocket::TradingViewWebSocket;
88
89pub mod prelude {
90    pub use crate::batch::{BatchResult, SymbolFailure};
91    #[cfg(feature = "calendar")]
92    pub use crate::calendar::{
93        CalendarWindowRequest, DividendCalendarEntry, DividendCalendarRequest, DividendDateKind,
94        EarningsCalendarEntry, IpoCalendarEntry,
95    };
96    pub use crate::client::{
97        AuthConfig, AuthMode, ClientEvent, ClientObserver, DefaultWebSocketConnector,
98        HistoryBatchCompletedEvent, HistoryBatchMode, HistoryClientConfig,
99        HttpRequestCompletedEvent, HttpRequestFailedEvent, RequestBudget, RetryConfig, RetryJitter,
100        TradingViewClient, TradingViewClientConfig, TransportConfig, WebSocketConnectFuture,
101        WebSocketConnectedEvent, WebSocketConnectionFailedEvent, WebSocketConnector,
102    };
103    #[cfg(feature = "crypto")]
104    pub use crate::crypto::{CryptoClient, CryptoOverview};
105    #[cfg(feature = "economics")]
106    pub use crate::economics::{
107        EconomicCalendarRequest, EconomicCalendarResponse, EconomicEvent, EconomicValue,
108    };
109    #[cfg(feature = "equity")]
110    pub use crate::equity::{
111        AnalystForecasts, AnalystFxRates, AnalystPriceTargets, AnalystRecommendations,
112        AnalystSummary, EarningsCalendar, EarningsMetrics, EquityClient, EquityOverview,
113        EstimateHistory, EstimateMetrics, EstimateObservation, FundamentalMetrics,
114        FundamentalObservation, FundamentalsSnapshot, PointInTimeFundamentals,
115    };
116    #[cfg(feature = "forex")]
117    pub use crate::forex::{ForexClient, ForexOverview};
118    pub use crate::history::{
119        Adjustment, Bar, BarSelectionPolicy, DailyBarRangeRequest, DailyBarRequest,
120        HistoryBatchRequest, HistoryProvenance, HistoryRequest, HistorySeries, Interval,
121        TradingSession,
122    };
123    #[cfg(feature = "equity")]
124    pub use crate::market_data::ConversionRatesSnapshot;
125    #[cfg(any(
126        feature = "calendar",
127        feature = "crypto",
128        feature = "equity",
129        feature = "forex"
130    ))]
131    pub use crate::market_data::InstrumentIdentity;
132    #[cfg(any(feature = "crypto", feature = "equity", feature = "forex"))]
133    pub use crate::market_data::{QuoteSnapshot, TechnicalSummary};
134    pub use crate::metadata::{DataLineage, DataSourceKind, HistoryKind};
135    pub use crate::scanner::fields;
136    pub use crate::scanner::{
137        Column, FieldRegistry, FilterCondition, FilterOperator, FilterTree,
138        HeuristicSymbolNormalizer, IndexSymbolDescriptor, InstrumentRef, LogicalOperator, Market,
139        MarketDescriptor, Page, PartiallySupportedColumn, PriceConversion, ScanQuery, ScanResponse,
140        ScanRow, ScanValidationReport, ScannerFieldMetainfo, ScannerFieldType, ScannerMetainfo,
141        ScreenerKind, SortOrder, SortSpec, SymbolGroup, SymbolNormalizer, Symbols, Ticker,
142        embedded_registry,
143    };
144    #[cfg(feature = "search")]
145    pub use crate::search::{SearchAssetClass, SearchHit, SearchRequest, SearchResponse};
146    pub use crate::time_series::{FiscalPeriod, HistoricalObservation};
147    pub use crate::{ErrorKind, Result, TradingViewWebSocket};
148}