Skip to main content

finance_query/domains/
commodities.rs

1//! Commodity price quote handle.
2//!
3//! Created via [`Providers::commodity`](crate::Providers::commodity).
4
5use crate::error::Result;
6
7domain_handle! {
8    /// A commodity backed by configured data providers.
9    ///
10    /// Created via [`Providers::commodity`](crate::Providers::commodity).
11    pub struct Commodity { symbol, symbol }
12    cache: crate::models::commodities::CommodityQuote
13}
14
15impl Commodity {
16    /// Fetch the current quote for this commodity.
17    pub async fn quote(&self) -> Result<crate::models::commodities::CommodityQuote> {
18        fetch_via!(
19            self,
20            symbol,
21            COMMODITIES,
22            fetch_commodities_quote,
23            crate::models::commodities::CommodityQuote
24        )
25    }
26}