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}