3个不稳定版本

0.2.0 2022年10月27日
0.1.1 2018年7月29日
0.1.0 2018年7月29日

#103 in 财经

MIT许可

13KB
141 代码行

currency-layer-rs是CurrencyLayer免费API的客户端

示例用法

实时汇率

examples/live_rates.rs

extern crate currency_layer;
extern crate tokio;

use currency_layer::Client;
use rusty_money::{iso, Money};

#[tokio::main]
async fn main() {
    let client = Client::new("API_KEY");
    let result = client
        .get_live_rates(
            // Currencies to get rates for
            vec!["GBP", "USD", "CAD"],
        )
        .await
        .unwrap();

    // The free API only returns rates in dollars.
    // See: https://currencylayer.com/documentation, section
    // "Source Currency Switching".
    let original_usd = Money::from_major(100, iso::USD);
    let exchange_rate_usd_to_gbp = result.quotes.get("GBP").unwrap();
    let converted_to_gbp = exchange_rate_usd_to_gbp
        .convert(original_usd.clone())
        .unwrap();
    // At 2021-02-16 02:12:06 UTC: $100 → £71.74
    println!(
        "At {}: {}{}",
        result.timestamp, &original_usd, &converted_to_gbp
    );
}

历史汇率

examples/historical_rates.rs

extern crate currency_layer;
extern crate tokio;

use currency_layer::Client;
use rusty_money::{iso, Money};

#[tokio::main]
async fn main() {
    let client = Client::new("API_KEY");
    let result = client
        .get_historical_rates(
            // Currencies to get rates for
            vec!["GBP", "USD", "CAD"],
            // Date as a tuple 3 in the format YYYY, MM, DD
            (2015, 2, 23),
        )
        .await
        .unwrap();

    // The free API only returns rates in dollars.
    // See: https://currencylayer.com/documentation, section
    // "Source Currency Switching".
    let original_usd = Money::from_major(100, iso::USD);
    let exchange_rate_usd_to_gbp = result.quotes.get("GBP").unwrap();
    let converted_to_gbp = exchange_rate_usd_to_gbp
        .convert(original_usd.clone())
        .unwrap();
    // At 2015-02-23 23:59:59 UTC: $100 → £64.70
    println!(
        "At {}: {}{}",
        result.timestamp, &original_usd, &converted_to_gbp
    );
}

依赖项

~5–20MB
~276K SLoC