#![warn(missing_docs)]
#![warn(rustdoc::missing_crate_level_docs)]
pub(crate) mod adapters;
pub mod error;
pub mod finance;
pub mod edgar {
pub use crate::adapters::edgar::{
company_facts, filing_index, init, init_with_config, resolve_cik, search, submissions,
};
}
mod constants;
mod models;
mod providers;
pub(crate) mod rate_limiter;
mod scrapers;
mod ticker;
mod tickers;
mod utils;
#[cfg(feature = "fred")]
pub mod fred {
pub use crate::adapters::fred::{init, init_with_timeout, series, treasury_yields};
pub use crate::models::economic::{MacroObservation, MacroSeries, TreasuryYield};
}
#[cfg(feature = "crypto")]
pub mod crypto {
pub use crate::adapters::coingecko::{CoinQuote, coin, coins};
}
#[cfg(feature = "rss")]
pub mod feeds;
#[cfg(feature = "risk")]
pub mod risk;
pub mod domains;
pub use providers::config::{Providers, ProvidersBuilder};
pub use providers::{Capability, Fetch, Provider};
pub use ticker::{ClientHandle, Ticker, TickerBuilder};
#[cfg(any(
feature = "alphavantage",
feature = "crypto",
feature = "fmp",
feature = "polygon"
))]
pub use domains::CryptoCoin;
#[cfg(any(feature = "alphavantage", feature = "polygon", feature = "fred"))]
pub use domains::EconomicIndicator;
#[cfg(any(feature = "alphavantage", feature = "fmp", feature = "polygon"))]
pub use domains::ForexPair;
#[cfg(any(feature = "fmp", feature = "alphavantage"))]
pub use domains::Commodity;
pub use domains::Filings;
#[cfg(feature = "polygon")]
pub use domains::FuturesContract;
#[cfg(any(feature = "polygon", feature = "fmp"))]
pub use domains::Index;
#[cfg(feature = "polygon")]
pub use finance::symbol_sentiment;
#[cfg(feature = "fmp")]
pub use finance::{
AnalystEstimate, AnalystRecommendation, InsiderTransaction, Period, analyst_estimates,
analyst_recommendations, insider_trading,
};
#[cfg(feature = "alphavantage")]
pub use finance::{EarningsCalendarEntry, IpoCalendarEntry, earnings_calendar, ipo_calendar};
pub use tickers::{
BatchCapitalGainsResponse, BatchChartsResponse, BatchDividendsResponse,
BatchFinancialsResponse, BatchNewsResponse, BatchOptionsResponse, BatchQuotesResponse,
BatchRecommendationsResponse, BatchSparksResponse, BatchSplitsResponse, Tickers,
TickersBuilder,
};
#[cfg(feature = "indicators")]
pub use tickers::BatchIndicatorsResponse;
pub use error::{ErrorCategory, FinanceError, Result};
pub use finance::{LookupOptions, LookupType, SearchOptions};
pub use constants::indices::Region as IndicesRegion;
pub use constants::screeners::Screener;
pub use constants::sectors::Sector;
pub use constants::{Frequency, Interval, Region, StatementType, TimeRange, ValueFormat};
pub use models::{
chart::Chart,
chart::spark::Spark,
corporate::news::News,
corporate::recommendation::Recommendation,
corporate::transcript::{Transcript, TranscriptWithMeta},
discovery::lookup::LookupResults,
discovery::screeners::ScreenerResults,
discovery::search::SearchResults,
discovery::trending::TrendingQuote,
filings::{
CompanyFacts, EdgarSearchResults, EdgarSubmissions, ProviderFiling, ProviderFilings,
},
fundamentals::FinancialStatement,
market::currencies::Currency,
market::exchanges::Exchange,
market::hours::MarketHours,
market::industries::IndustryData,
market::market_summary::MarketSummaryQuote,
market::sectors::SectorData,
options::Options,
quote::Quote,
sentiment::{FearAndGreed, FearGreedLabel, SymbolSentiment},
};
#[cfg(any(feature = "fmp", feature = "alphavantage"))]
pub use models::commodities::CommodityQuote;
#[cfg(any(
feature = "crypto",
feature = "alphavantage",
feature = "fmp",
feature = "polygon"
))]
pub use models::crypto::CryptoQuote;
#[cfg(any(feature = "fred", feature = "alphavantage", feature = "polygon"))]
pub use models::economic::EconomicSeries;
#[cfg(any(feature = "alphavantage", feature = "fmp", feature = "polygon"))]
pub use models::forex::ForexQuote;
#[cfg(feature = "polygon")]
pub use models::futures::FuturesQuote;
#[cfg(any(feature = "polygon", feature = "fmp"))]
pub use models::indices::IndexQuote;
pub use models::{
chart::{Candle, CapitalGain, ChartMeta, Dividend, DividendAnalytics, Split},
corporate::recommendation::SimilarSymbol,
discovery::lookup::LookupQuote,
discovery::screeners::ScreenerQuote,
discovery::search::{
ResearchReport, ResearchReports, SearchNews, SearchNewsList, SearchQuote, SearchQuotes,
},
filings::filing_index::{EdgarFilingIndex, EdgarFilingIndexItem},
filings::{
CikEntry, EdgarFiling, EdgarFilingFile, EdgarFilingRecent, EdgarFilings, EdgarSearchHit,
EdgarSearchHitsContainer, EdgarSearchSource, EdgarSearchTotal, FactConcept, FactUnit,
FactsByTaxonomy,
},
market::hours::MarketTime,
market::market_summary::SparkData,
options::{Contracts, OptionChain, OptionContract, OptionsQuote},
quote::FormattedValue,
};
pub use constants::exchange_codes::ExchangeCode;
pub use constants::industries::Industry;
pub use models::discovery::screeners::{
ConditionValue, EquityField, EquityScreenerQuery, FundField, FundScreenerQuery,
LogicalOperator, Operator, QueryCondition, QueryGroup, QueryOperand, QuoteType, ScreenerField,
ScreenerFieldExt, ScreenerFundCategory, ScreenerPeerGroup, ScreenerQuery, SortType,
};
pub mod streaming;
#[cfg(feature = "dataframe")]
pub use finance_query_derive::ToDataFrame;
#[cfg(feature = "indicators")]
pub mod indicators;
#[cfg(feature = "indicators")]
pub use indicators::{
AroonData,
BollingerBands,
BollingerBandsData,
BullBearPowerData,
CandlePattern,
DonchianChannelsData,
ElderRayData,
IchimokuData,
Indicator,
IndicatorError,
IndicatorResult,
IndicatorsSummary,
KeltnerChannelsData,
MacdData,
MacdResult,
PatternSentiment,
StochasticData,
SuperTrendData,
atr,
patterns,
};
#[cfg(feature = "backtesting")]
pub mod backtesting;
const _: () = {
const fn assert_send_sync<T: Send + Sync>() {}
let _ = assert_send_sync::<Ticker>;
let _ = assert_send_sync::<Tickers>;
};