osm-api 0.1.1

Rust binding for the Open Street Map Api
Documentation
use chrono::{Local, SecondsFormat};
use colored::Colorize;
use log::{error, info, LevelFilter};
use osm_api::prelude::*;
use std::io::Write;

#[tokio::main]
async fn main() {
    env_logger::Builder::new()
        .format(|buf, record| {
            let time = Local::now()
                .to_rfc3339_opts(SecondsFormat::Millis, true)
                .as_str()
                .bright_blue();
            let level = record.level().as_str();
            let colored_level = match record.level().to_level_filter() {
                LevelFilter::Info => level.green(),
                LevelFilter::Warn => level.yellow(),
                LevelFilter::Error => level.red(),
                _ => level.into(),
            };
            writeln!(buf, "{} [{}] - {}", time, colored_level, record.args(),)
        })
        .filter(None, LevelFilter::Debug)
        .init();
    match get_versions_json().await {
        Ok(result) => info!("Success!\n{:#?}", result),
        Err(e) => error!("Error: {}", e),
    }

    match get_capabilities_json().await {
        Ok(result) => info!("Success!\n{:#?}", result),
        Err(e) => error!("Error: {}", e),
    }
}