use clap::Args;
use iref::IriBuf;
use taganak_core::sources::SourceError;
use crate::graphs::{ConfigurableGraph, ConfigurableGraphs, GraphConfigs};
#[derive(Args, Debug, Clone)]
#[group(requires = "source_iri")]
pub struct GraphArgs {
#[arg(required = false)]
pub source_iri: IriBuf,
}
impl GraphArgs {
pub fn graph(&self) -> Result<ConfigurableGraphs, SourceError> {
let config = GraphConfigs::from_iri(self.source_iri.clone())
.map_err(|e| SourceError::UnsupportedSourceIri)?;
ConfigurableGraphs::from_config(config)
}
}