#![warn(missing_docs)]
#![warn(rustdoc::missing_crate_level_docs)]
pub mod edgar;
pub mod error;
pub mod finance;
mod auth;
mod client;
mod constants;
mod endpoints;
mod models;
pub(crate) mod rate_limiter;
mod scrapers;
mod ticker;
mod tickers;
mod utils;
#[cfg(feature = "fred")]
pub mod fred;
#[cfg(feature = "crypto")]
pub mod crypto {
pub use crate::coingecko::{CoinQuote, coin, coins};
}
#[cfg(feature = "crypto")]
mod coingecko;
#[cfg(any(feature = "alphavantage", feature = "polygon", feature = "fmp"))]
pub mod adapters;
#[cfg(feature = "rss")]
pub mod feeds;
#[cfg(feature = "risk")]
pub mod risk;
pub use ticker::{ClientHandle, Ticker, TickerBuilder};
pub use tickers::{
BatchCapitalGainsResponse, BatchChartsResponse, BatchDividendsResponse,
BatchFinancialsResponse, BatchNewsResponse, BatchOptionsResponse, BatchQuotesResponse,
BatchRecommendationsResponse, BatchSparksResponse, Tickers, TickersBuilder,
};
#[cfg(feature = "indicators")]
pub use tickers::BatchIndicatorsResponse;
pub use error::{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,
currencies::Currency,
edgar::{CompanyFacts, EdgarSearchResults, EdgarSubmissions},
exchanges::Exchange,
financials::FinancialStatement,
hours::MarketHours,
industries::IndustryData,
lookup::LookupResults,
market_summary::MarketSummaryQuote,
news::News,
options::Options,
quote::Quote,
recommendation::Recommendation,
screeners::ScreenerResults,
search::SearchResults,
sectors::SectorData,
sentiment::{FearAndGreed, FearGreedLabel},
spark::Spark,
transcript::Transcript,
transcript::TranscriptWithMeta,
trending::TrendingQuote,
};
pub use models::{
chart::{Candle, CapitalGain, ChartMeta, Dividend, DividendAnalytics, Split},
edgar::filing_index::{EdgarFilingIndex, EdgarFilingIndexItem},
edgar::{
CikEntry, EdgarFiling, EdgarFilingFile, EdgarFilingRecent, EdgarFilings, EdgarSearchHit,
EdgarSearchHitsContainer, EdgarSearchSource, EdgarSearchTotal, FactConcept, FactUnit,
FactsByTaxonomy,
},
hours::MarketTime,
lookup::LookupQuote,
market_summary::SparkData,
options::{Contracts, OptionChain, OptionContract, OptionsQuote},
quote::FormattedValue,
recommendation::SimilarSymbol,
screeners::ScreenerQuote,
search::{
ResearchReport, ResearchReports, SearchNews, SearchNewsList, SearchQuote, SearchQuotes,
},
};
pub use constants::exchange_codes::ExchangeCode;
pub use constants::industries::Industry;
pub use models::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>;
};