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, SnapshotBatchConfig,
44    SnapshotBatchStrategy, TradingViewClient, TradingViewClientConfig, TransportConfig,
45    WebSocketConnectFuture, WebSocketConnectedEvent, WebSocketConnectionFailedEvent,
46    WebSocketConnector,
47};
48#[cfg(feature = "crypto")]
49pub use crypto::{CryptoClient, CryptoOverview};
50#[cfg(feature = "economics")]
51pub use economics::{
52    EconomicCalendarRequest, EconomicCalendarResponse, EconomicEvent, EconomicValue,
53};
54#[cfg(feature = "equity")]
55pub use equity::{
56    AnalystForecasts, AnalystFxRates, AnalystPriceTargets, AnalystRecommendations, AnalystSummary,
57    EarningsCalendar, EarningsMetrics, EquityClient, EquityOverview, EstimateHistory,
58    EstimateMetrics, EstimateObservation, FundamentalMetrics, FundamentalObservation,
59    FundamentalsSnapshot, PointInTimeFundamentals,
60};
61pub use error::{Error, ErrorKind, Result};
62#[cfg(feature = "forex")]
63pub use forex::{ForexClient, ForexOverview};
64pub use history::{
65    Adjustment, Bar, BarSelectionPolicy, DailyBarRangeRequest, DailyBarRequest,
66    HistoryBatchRequest, HistoryProvenance, HistoryRequest, HistorySeries, Interval,
67    TradingSession,
68};
69#[cfg(feature = "equity")]
70pub use market_data::ConversionRatesSnapshot;
71#[cfg(any(
72    feature = "calendar",
73    feature = "crypto",
74    feature = "equity",
75    feature = "forex"
76))]
77pub use market_data::InstrumentIdentity;
78#[cfg(any(feature = "crypto", feature = "equity", feature = "forex"))]
79pub use market_data::{QuoteSnapshot, TechnicalSummary};
80pub use metadata::{DataLineage, DataSourceKind, HistoryKind};
81pub use scanner::{
82    HeuristicSymbolNormalizer, InstrumentRef, PartiallySupportedColumn, ScanValidationReport,
83    ScannerFieldMetainfo, ScannerFieldType, ScannerMetainfo, SymbolNormalizer,
84};
85#[cfg(feature = "search")]
86pub use search::{SearchAssetClass, SearchHit, SearchRequest, SearchResponse};
87pub use time_series::{FiscalPeriod, HistoricalObservation};
88pub use transport::websocket::TradingViewWebSocket;
89
90pub mod prelude {
91    pub use crate::batch::{BatchResult, SymbolFailure};
92    #[cfg(feature = "calendar")]
93    pub use crate::calendar::{
94        CalendarWindowRequest, DividendCalendarEntry, DividendCalendarRequest, DividendDateKind,
95        EarningsCalendarEntry, IpoCalendarEntry,
96    };
97    pub use crate::client::{
98        AuthConfig, AuthMode, ClientEvent, ClientObserver, DefaultWebSocketConnector,
99        HistoryBatchCompletedEvent, HistoryBatchMode, HistoryClientConfig,
100        HttpRequestCompletedEvent, HttpRequestFailedEvent, RequestBudget, RetryConfig, RetryJitter,
101        SnapshotBatchConfig, SnapshotBatchStrategy, TradingViewClient, TradingViewClientConfig,
102        TransportConfig, WebSocketConnectFuture, WebSocketConnectedEvent,
103        WebSocketConnectionFailedEvent, WebSocketConnector,
104    };
105    #[cfg(feature = "crypto")]
106    pub use crate::crypto::{CryptoClient, CryptoOverview};
107    #[cfg(feature = "economics")]
108    pub use crate::economics::{
109        EconomicCalendarRequest, EconomicCalendarResponse, EconomicEvent, EconomicValue,
110    };
111    #[cfg(feature = "equity")]
112    pub use crate::equity::{
113        AnalystForecasts, AnalystFxRates, AnalystPriceTargets, AnalystRecommendations,
114        AnalystSummary, EarningsCalendar, EarningsMetrics, EquityClient, EquityOverview,
115        EstimateHistory, EstimateMetrics, EstimateObservation, FundamentalMetrics,
116        FundamentalObservation, FundamentalsSnapshot, PointInTimeFundamentals,
117    };
118    #[cfg(feature = "forex")]
119    pub use crate::forex::{ForexClient, ForexOverview};
120    pub use crate::history::{
121        Adjustment, Bar, BarSelectionPolicy, DailyBarRangeRequest, DailyBarRequest,
122        HistoryBatchRequest, HistoryProvenance, HistoryRequest, HistorySeries, Interval,
123        TradingSession,
124    };
125    #[cfg(feature = "equity")]
126    pub use crate::market_data::ConversionRatesSnapshot;
127    #[cfg(any(
128        feature = "calendar",
129        feature = "crypto",
130        feature = "equity",
131        feature = "forex"
132    ))]
133    pub use crate::market_data::InstrumentIdentity;
134    #[cfg(any(feature = "crypto", feature = "equity", feature = "forex"))]
135    pub use crate::market_data::{QuoteSnapshot, TechnicalSummary};
136    pub use crate::metadata::{DataLineage, DataSourceKind, HistoryKind};
137    pub use crate::scanner::fields;
138    pub use crate::scanner::{
139        Column, FieldRegistry, FilterCondition, FilterOperator, FilterTree,
140        HeuristicSymbolNormalizer, IndexSymbolDescriptor, InstrumentRef, LogicalOperator, Market,
141        MarketDescriptor, Page, PartiallySupportedColumn, PriceConversion, ScanQuery, ScanResponse,
142        ScanRow, ScanValidationReport, ScannerFieldMetainfo, ScannerFieldType, ScannerMetainfo,
143        ScreenerKind, SortOrder, SortSpec, SymbolGroup, SymbolNormalizer, Symbols, Ticker,
144        embedded_registry,
145    };
146    #[cfg(feature = "search")]
147    pub use crate::search::{SearchAssetClass, SearchHit, SearchRequest, SearchResponse};
148    pub use crate::time_series::{FiscalPeriod, HistoricalObservation};
149    pub use crate::{ErrorKind, Result, TradingViewWebSocket};
150}