databento 0.46.0

Official Databento client library
Documentation
use std::error::Error;

use databento::{
    reference::{adjustment, corporate, security, Country, Event},
    ReferenceClient,
};
use time::macros::date;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    tracing_subscriber::FmtSubscriber::builder()
        .with_test_writer()
        .init();
    let mut client = ReferenceClient::builder().key_from_env()?.build()?;

    let actions = client
        .corporate_actions()
        .get_range(
            &corporate::GetRangeParams::builder()
                .symbols("AAPL")
                .start(date!(2024 - 01 - 01))
                .events([Event::Shoch])
                .countries([Country::Us])
                .build(),
        )
        .await?;
    println!("{actions:?}");

    let adjustments = client
        .adjustment_factors()
        .get_range(
            &adjustment::GetRangeParams::builder()
                .symbols("MSFT")
                .start(date!(2024 - 01 - 01))
                .end(date!(2025 - 01 - 01))
                .countries([Country::Us])
                .build(),
        )
        .await?;
    println!("{adjustments:?}");

    let last_sec_master = client
        .security_master()
        .get_last(
            &security::GetLastParams::builder()
                .symbols("AAPL")
                .countries([Country::Us])
                .build(),
        )
        .await?;
    println!("{last_sec_master:?}");

    let sec_master = client
        .security_master()
        .get_range(
            &security::GetRangeParams::builder()
                .symbols("AAPL")
                .countries([Country::Us])
                .start(date!(2005 - 01 - 01))
                .build(),
        )
        .await?;
    println!("{sec_master:?}");

    Ok(())
}