use std::path::PathBuf; use semver::Version; use serde::{Deserialize, Serialize}; /// Data struct #[derive(Debug, Clone, Deserialize, Serialize, Hash, PartialEq, Eq, PartialOrd, Ord)] pub struct Meta { pub name: String, pub version: Version, #[serde(skip_serializing_if = ">::is_none")] pub authors: Option>, #[serde(skip_serializing_if = ">::is_none")] pub repository: Option, #[serde(skip_serializing_if = ">::is_none")] pub license: Option, #[serde(skip_serializing_if = ">::is_none")] pub license_file: Option, } impl Meta { pub fn new(name: S) -> Self { let mut meta = Self::default(); meta.name = name.to_string(); meta } } impl Default for Meta { fn default() -> Self { Meta { name: String::from("Main"), version: Version::new(0, 1, 0), authors: None, repository: None, license: None, license_file: None, } } }