mod comparison;
mod conversion;
mod data;
mod dctap;
mod generation;
mod node;
mod pgschema;
mod query;
mod rdf_config;
mod service;
mod shacl;
mod shapemap;
mod shex;
mod validation;
pub use comparison::*;
pub use conversion::*;
pub use data::*;
pub use dctap::*;
pub use generation::*;
pub use node::*;
pub use pgschema::*;
pub use query::*;
pub use rdf_config::*;
pub use service::*;
pub use shacl::*;
pub use shapemap::*;
pub use shex::*;
pub use validation::*;
#[macro_export]
macro_rules! cli_wrapper {
(
$cli:ident,
$core:ident,
{ $($variant:ident),* $(,)? }
) => {
#[derive(ValueEnum, Debug, Clone, Copy, PartialEq, Eq)]
#[clap(rename_all = "lower")]
pub enum $cli {
$( $variant ),*
}
impl From<$cli> for $core {
fn from(cli: $cli) -> Self {
let s = cli.to_string();
s.parse().unwrap_or_else(|e| {
panic!(
"CLI enum variant {:?} doesn't match lib enum: {:?}",
cli, e
)
})
}
}
impl Display for $cli {
fn fmt(&self, f: &mut Formatter<'_>) -> Result {
let val = self.to_possible_value().expect("no skipped variants");
write!(f, "{}", val.get_name())
}
}
};
}