pub trait FundamentalsProvider: ProviderCore {
Show 13 methods
// Required method
fn fetch_financials<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
stmt_type: StatementType,
frequency: Frequency,
) -> Pin<Box<dyn Future<Output = Result<FinancialStatement>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
// Provided methods
fn fetch_short_interest<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<ShortInterest>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn fetch_short_volume<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<ShortVolume>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn fetch_share_float<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ShareFloat>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn fetch_company_profile<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<CompanyProfile>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn fetch_price_target_consensus<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<PriceTargetConsensus>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn fetch_price_target_summary<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<PriceTargetSummary>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn fetch_rating_consensus<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<RatingConsensus>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn fetch_key_metrics_ttm<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<KeyMetricsTtm>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn fetch_ratios_ttm<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<FinancialRatiosTtm>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn fetch_etf_profile<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<EtfProfile>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn fetch_earnings_surprises<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<EarningsSurprise>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn fetch_grading_history<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<GradingAction>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
}Expand description
crate::Capability::FUNDAMENTALS — financial statements and share-supply data.
Required Methods§
Sourcefn fetch_financials<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
stmt_type: StatementType,
frequency: Frequency,
) -> Pin<Box<dyn Future<Output = Result<FinancialStatement>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_financials<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
stmt_type: StatementType,
frequency: Frequency,
) -> Pin<Box<dyn Future<Output = Result<FinancialStatement>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch one financial statement at one reporting frequency.
Provided Methods§
Sourcefn fetch_short_interest<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<ShortInterest>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_short_interest<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<ShortInterest>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch bi-monthly short-interest settlement reports.
Sourcefn fetch_short_volume<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<ShortVolume>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_short_volume<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<ShortVolume>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch daily short-volume data.
Fetch share float and shares outstanding.
Sourcefn fetch_company_profile<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<CompanyProfile>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_company_profile<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<CompanyProfile>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch the company’s identity/classification profile.
Sourcefn fetch_price_target_consensus<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<PriceTargetConsensus>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_price_target_consensus<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<PriceTargetConsensus>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch the aggregated analyst price-target consensus.
Sourcefn fetch_price_target_summary<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<PriceTargetSummary>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_price_target_summary<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<PriceTargetSummary>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch price-target publication activity over trailing windows.
NOTE: analyst price targets aren’t SEC-filed data — no keyless provider in this crate publishes trailing-window target-publication counts, so this stays FMP-only.
Sourcefn fetch_rating_consensus<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<RatingConsensus>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_rating_consensus<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<RatingConsensus>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch the aggregated analyst rating consensus.
Sourcefn fetch_key_metrics_ttm<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<KeyMetricsTtm>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_key_metrics_ttm<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<KeyMetricsTtm>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch the trailing-twelve-month key-metrics snapshot.
Sourcefn fetch_ratios_ttm<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<FinancialRatiosTtm>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_ratios_ttm<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<FinancialRatiosTtm>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch the trailing-twelve-month ratios snapshot.
Sourcefn fetch_etf_profile<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<EtfProfile>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_etf_profile<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<EtfProfile>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch an ETF’s profile and portfolio holdings.
Sourcefn fetch_earnings_surprises<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<EarningsSurprise>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_earnings_surprises<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<EarningsSurprise>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch earnings-surprise history, newest first.
Sourcefn fetch_grading_history<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<GradingAction>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_grading_history<'life0, 'life1, 'async_trait>(
&'life0 self,
_symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<GradingAction>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch the raw per-analyst grade-action history behind
fetch_rating_consensus’s rollup.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".