Skip to main content

DiscoveryProvider

Trait DiscoveryProvider 

Source
pub trait DiscoveryProvider: ProviderCore {
    // 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_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_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§