mod chains;
mod expiration_chain;
mod instruments;
mod market_hours;
mod movers;
mod price_history;
mod quotes;
pub use chains::{
Chains, ContractType, Entitlement, ExpirationMonth, ExpirationType, GetChainBuilder,
OptionChain, OptionContract, OptionContractMap, OptionDeliverables, OptionRange,
OptionStrategy, OptionType, PutCall, SettlementType, Underlying, UnderlyingExchange,
};
pub use expiration_chain::{Expiration, ExpirationChain, ExpirationChainResponse};
pub use instruments::{
Bond, FundamentalInst, Instrument, InstrumentAssetType, InstrumentResponse, Instruments,
InstrumentsResponse, Projection,
};
pub use market_hours::{
GetMarketHoursBuilder, Hours, Interval, ListMarketHoursBuilder, Market, MarketHours,
MarketHoursResponse, MarketType,
};
pub use movers::{
GetMoversBuilder, MoverDirection, MoverIndex, MoverSort, Movers, MoversResponse, Screener,
};
pub use price_history::{
Candle, CandleList, FrequencyType, GetPriceHistoryBuilder, PeriodType, PriceHistory,
};
pub use quotes::{
AssetMainType, AssetSubType, EquityQuote, ExerciseType, ExtendedMarket, ForexQuote,
FundStrategy, Fundamental, FutureOptionQuote, FutureQuote, GetQuoteBuilder, IndexQuote,
ListQuotesBuilder, MutualFundAssetSubType, MutualFundQuote, OptionContractType, OptionQuote,
QuoteEntry, QuoteEquity, QuoteError, QuoteField, QuoteForex, QuoteFuture, QuoteFutureOption,
QuoteIndex, QuoteMutualFund, QuoteOption, QuoteResponse, QuoteType, Quotes, ReferenceEquity,
ReferenceForex, ReferenceFuture, ReferenceFutureOption, ReferenceIndex, ReferenceMutualFund,
ReferenceOption, RegularMarket,
};
use crate::client::SchwabClient;
#[derive(Debug)]
pub struct MarketData<'a> {
client: &'a SchwabClient,
}
impl<'a> MarketData<'a> {
pub(crate) fn new(client: &'a SchwabClient) -> Self {
Self { client }
}
pub fn quotes(&self) -> Quotes<'a> {
Quotes::new(self.client)
}
pub fn price_history(&self) -> PriceHistory<'a> {
PriceHistory::new(self.client)
}
pub fn market_hours(&self) -> MarketHours<'a> {
MarketHours::new(self.client)
}
pub fn movers(&self) -> Movers<'a> {
Movers::new(self.client)
}
pub fn instruments(&self) -> Instruments<'a> {
Instruments::new(self.client)
}
pub fn chains(&self) -> Chains<'a> {
Chains::new(self.client)
}
pub fn expiration_chain(&self) -> ExpirationChain<'a> {
ExpirationChain::new(self.client)
}
}