quilt-api 0.2.0

Non-web API for representing quilt4 data structures.
Documentation
use clap::{Parser, ValueEnum};
use quilt_api::get_manifest_as_type;
use serde::Serialize;

#[derive(Parser)]
#[command(author, version, about, long_about = None)]
struct Cli {
    /// URI string to operate on
    uri: String,

    /// Sets format to output
    #[arg(short, long, value_enum, default_value = "html")]
    format: Formats,
}

#[derive(
    ValueEnum, Clone, Default, Debug, Serialize,
)]
enum Formats {
    #[default]
    Html,
    Json,
    String,
}

#[tokio::main]
async fn main() {
    let cli = Cli::parse();
    let uri = cli.uri;
    let format = cli.format;
    tracing::info!("{:?} for uri: {}", format, uri);
    let mime_type =  match format {
        Formats::Html => {
            mime::TEXT_HTML
        }
        Formats::Json => {
            mime::APPLICATION_JSON
        }
        Formats::String => {
            mime::TEXT_PLAIN
        }
    };
    tracing::info!("mime_type {} for {:?}", mime_type, format);
    let result = get_manifest_as_type(uri, mime_type).await;
    println!("{}", result);
}