cup-cli 0.1.6

A Cargo-like tool for C++ Project Building and Package Management
Documentation
use std::path::Path;

use crate::{cli::TemplateType, config::Shelling};

#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct PackageConfig {
    pub name: String,
    pub version: String,
    #[serde(rename = "type")]
    pub ty: TemplateType,
}

impl<P: AsRef<Path>> Shelling<Package, P> for PackageConfig {
    fn shelling(self, _base: P) -> Package {
        Package {
            name: self.name,
            version: self.version,
            ty: self.ty,
        }
    }
}

#[derive(Debug, Clone)]
pub struct Package {
    pub name: String,
    pub version: String,
    pub ty: TemplateType,
}