apicurio-cli 0.1.2

A powerful CLI tool for managing schema artifacts from Apicurio Registry with lockfile-based dependency management
use crate::config::DependencyConfig;
use anyhow::Result;
use semver::VersionReq;

pub struct Dependency {
    pub name: String,
    pub group_id: String,
    pub artifact_id: String,
    pub req: VersionReq,
    pub registry: String,
    pub output_path: String,
}

impl Dependency {
    pub fn from_config(cfg: &DependencyConfig) -> Result<Self> {
        Ok(Dependency {
            name: cfg.name.clone(),
            group_id: cfg.group_id.clone(),
            artifact_id: cfg.artifact_id.clone(),
            req: VersionReq::parse(&cfg.version)?,
            registry: cfg.registry.clone(),
            output_path: cfg.output_path.clone(),
        })
    }
}