deribit-api 0.1.2

Deribit API client
Documentation
use deribit_api::{
    DeribitClient, DeribitPriceIndexIndexNameChannel, Env, IndexName, PublicSetHeartbeatRequest,
};
use futures_util::stream::{StreamExt, select};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = DeribitClient::connect(Env::Production).await?;

    client
        .call(PublicSetHeartbeatRequest { interval: 10 })
        .await?;

    let btc_stream = client
        .subscribe(DeribitPriceIndexIndexNameChannel {
            index_name: IndexName::BtcUsd,
        })
        .await?;

    let eth_stream = client
        .subscribe(DeribitPriceIndexIndexNameChannel {
            index_name: IndexName::EthUsd,
        })
        .await?;

    let mut stream = select(btc_stream, eth_stream);

    while let Some(Ok(price)) = stream.next().await {
        println!("Price: {:?}", price);
    }

    Ok(())
}