hetzner 1.0.0

A Rust library for managing DNS records and zones on Hetzner's platform, providing tools for networking and DNS management.
Documentation
use dotenv::dotenv;
use hetzner::{HetznerClient, ListServersParams};
use std::env::var;
use tracing::info;
use tracing_subscriber::EnvFilter;

#[tokio::main]
async fn main() {
    dotenv().ok();
    init_tracing();

    let api_token = var("HETZNER_API_ACCESS_TOKEN").expect("HETZNER_API_ACCESS_TOKEN must be set");
    let client = HetznerClient::new(api_token);

    match client
        .cloud()
        .servers()
        .list(Some(&ListServersParams::default()))
        .await
    {
        Ok(servers) => info!("servers: {servers:#?}"),
        Err(err) => info!("failed to list servers: {err}"),
    }
}

fn init_tracing() {
    let filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info"));
    tracing_subscriber::fmt().with_env_filter(filter).init();
}