#![doc = include_str!("../README.md")]
#![warn(
missing_debug_implementations,
missing_docs,
unreachable_pub,
rustdoc::all
)]
#![deny(unused_must_use, rust_2018_idioms)]
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
pub mod types;
pub use types::*;
pub mod spdx;
pub use spdx::*;
pub async fn get(id: &str) -> anyhow::Result<License> {
use merge::Merge;
let license = SPDX::fuzzy_find(id).await?;
let mut license = license.ok_or(anyhow::anyhow!("no license!"))?;
let details = SPDX::license(&license.license_id).await?;
license.merge(details);
Ok(license)
}