use std::ops::AddAssign;
use semver::Version;
use serde_derive::{Deserialize, Serialize};
use crate::PackageName;
mod display;
#[derive(Clone, Serialize, Deserialize)]
pub struct ValorPackage {
name: PackageName,
publish: bool,
version: Version,
authors: Vec<String>,
description: String,
repository: String,
documentation: String,
license: String,
readme: String,
}
impl AddAssign<Self> for ValorPackage {
fn add_assign(&mut self, rhs: Self) {
println!("Merge: {:#?}", rhs);
}
}
impl Default for ValorPackage {
fn default() -> Self {
Self {
name: Default::default(),
publish: true,
version: Version::new(0, 0, 0),
authors: vec![],
description: "".to_string(),
repository: "".to_string(),
documentation: "".to_string(),
license: "".to_string(),
readme: "".to_string(),
}
}
}
impl ValorPackage {
pub fn is_valid(&self) -> bool {
!self.name.is_empty()
}
}