Skip to main content

finance_query/domains/
crypto.rs

1//! Cryptocurrency coin query handle.
2//!
3//! Created via [`Providers::crypto`](crate::Providers::crypto).
4
5use crate::error::Result;
6
7domain_handle! {
8    /// A cryptocurrency coin backed by configured data providers.
9    ///
10    /// Created via [`Providers::crypto`](crate::Providers::crypto).
11    pub struct CryptoCoin { id, id }
12    cache: crate::models::crypto::CryptoQuote
13}
14
15impl CryptoCoin {
16    /// Fetch the current quote for this coin priced in `vs_currency` (e.g., `"usd"`).
17    pub async fn quote(&self, vs_currency: &str) -> Result<crate::models::crypto::CryptoQuote> {
18        fetch_via_with!(
19            self,
20            id,
21            CRYPTO,
22            fetch_crypto_quote,
23            vs_currency,
24            crate::models::crypto::CryptoQuote
25        )
26    }
27}