Skip to main content

DiscoveryProvider

Trait DiscoveryProvider 

Source
pub trait DiscoveryProvider: ProviderCore {
Show 13 methods // Required method fn fetch_symbol_search<'life0, 'life1, 'async_trait>( &'life0 self, query: &'life1 str, limit: u32, ) -> Pin<Box<dyn Future<Output = Result<Vec<SymbolMatch>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; // Provided methods fn fetch_delisted_stocks_page_at<'life0, 'async_trait>( &'life0 self, _page: u32, _limit: u32, ) -> Pin<Box<dyn Future<Output = Result<Vec<SymbolMatch>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn fetch_delisted_stocks_page<'life0, 'life1, 'async_trait>( &'life0 self, _limit: u32, _cursor: Option<&'life1 PageCursor>, ) -> Pin<Box<dyn Future<Output = Result<ProviderPage<SymbolMatch>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn fetch_stock_list<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<SymbolMatch>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn fetch_company_profiles_bulk<'life0, 'async_trait>( &'life0 self, _part: u32, ) -> Pin<Box<dyn Future<Output = Result<Vec<CompanyProfile>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn fetch_stock_listings_page<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _request: &'life1 StockListingRequest, _cursor: Option<&'life2 PageCursor>, ) -> Pin<Box<dyn Future<Output = Result<ProviderPage<StockListing>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... } fn fetch_symbol_details_at<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _symbol: &'life1 str, _date: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<SymbolDetails>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... } fn fetch_ticker_changes<'life0, 'life1, 'async_trait>( &'life0 self, _id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<TickerChange>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn fetch_stock_types<'life0, 'life1, 'async_trait>( &'life0 self, _locale: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<StockType>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn fetch_symbol_details<'life0, 'life1, 'async_trait>( &'life0 self, _symbol: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<SymbolDetails>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn fetch_exchanges<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<ExchangeInfo>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn fetch_screener<'life0, 'life1, 'async_trait>( &'life0 self, _filters: &'life1 ScreenerFilters, ) -> Pin<Box<dyn Future<Output = Result<Vec<ScreenerMatch>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn fetch_listing_status<'life0, 'async_trait>( &'life0 self, _active: bool, ) -> Pin<Box<dyn Future<Output = Result<Vec<SymbolMatch>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... }
}
Expand description

crate::Capability::DISCOVERY — symbol search, reference data, exchanges, screeners.

Required Methods§

Search the provider’s symbol universe by free-text query.

Provided Methods§

Source

fn fetch_delisted_stocks_page_at<'life0, 'async_trait>( &'life0 self, _page: u32, _limit: u32, ) -> Pin<Box<dyn Future<Output = Result<Vec<SymbolMatch>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Fetch an independently numbered delisted page; callers validate scan progress.

Source

fn fetch_delisted_stocks_page<'life0, 'life1, 'async_trait>( &'life0 self, _limit: u32, _cursor: Option<&'life1 PageCursor>, ) -> Pin<Box<dyn Future<Output = Result<ProviderPage<SymbolMatch>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Fetch one delisted-stock page, bound to this provider and page size.

Source

fn fetch_stock_list<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<SymbolMatch>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Fetch the current full directory, without assuming active status.

Source

fn fetch_company_profiles_bulk<'life0, 'async_trait>( &'life0 self, _part: u32, ) -> Pin<Box<dyn Future<Output = Result<Vec<CompanyProfile>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Fetch one provider-defined bulk-profile part, not the entire directory.

Source

fn fetch_stock_listings_page<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _request: &'life1 StockListingRequest, _cursor: Option<&'life2 PageCursor>, ) -> Pin<Box<dyn Future<Output = Result<ProviderPage<StockListing>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Fetch one dated stock-directory page.

Source

fn fetch_symbol_details_at<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _symbol: &'life1 str, _date: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<SymbolDetails>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Fetch company details as of a calendar date.

Source

fn fetch_ticker_changes<'life0, 'life1, 'async_trait>( &'life0 self, _id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<TickerChange>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Fetch the dated ticker changes of one security, oldest first.

Source

fn fetch_stock_types<'life0, 'life1, 'async_trait>( &'life0 self, _locale: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<StockType>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Fetch the provider’s stock-type vocabulary.

Source

fn fetch_symbol_details<'life0, 'life1, 'async_trait>( &'life0 self, _symbol: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<SymbolDetails>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Fetch detailed reference data for a single symbol.

Source

fn fetch_exchanges<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<ExchangeInfo>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Fetch the provider’s tradable exchange listing.

Source

fn fetch_screener<'life0, 'life1, 'async_trait>( &'life0 self, _filters: &'life1 ScreenerFilters, ) -> Pin<Box<dyn Future<Output = Result<Vec<ScreenerMatch>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Run a screener query over the provider’s universe.

Source

fn fetch_listing_status<'life0, 'async_trait>( &'life0 self, _active: bool, ) -> Pin<Box<dyn Future<Output = Result<Vec<SymbolMatch>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Fetch the provider’s whole listed-security universe.

active = false asks for delisted securities instead. Unlike fetch_symbol_search this is an unfiltered dump, so expect thousands of rows in one response.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§