use crate::{
control::{Architectures, CommaDelimitedStrings},
dependency::Dependency,
version::Version,
};
#[cfg(feature = "serde")]
use ::serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "serde", serde(rename_all = "PascalCase"))]
pub struct CommonSourceControl {
pub binary: Option<CommaDelimitedStrings>,
pub architecture: Option<Architectures>,
pub version: Version,
pub maintainer: String,
pub uploaders: Option<CommaDelimitedStrings>,
pub description: Option<String>,
pub homepage: Option<String>,
#[cfg_attr(feature = "serde", serde(flatten))]
pub vcs: Option<Vcs>,
#[cfg_attr(feature = "serde", serde(rename = "Vcs-Browser"))]
pub browser: Option<String>,
pub testsuite: Option<CommaDelimitedStrings>,
#[cfg_attr(feature = "serde", serde(rename = "Testsuite-Triggers"))]
pub testsuite_triggers: Option<CommaDelimitedStrings>,
pub dgit: Option<String>,
#[cfg_attr(feature = "serde", serde(rename = "Standards-Version"))]
pub standards_version: Option<String>,
#[cfg_attr(feature = "serde", serde(rename = "Build-Depends"))]
pub build_depends: Option<Dependency>,
#[cfg_attr(feature = "serde", serde(rename = "Build-Depends-Indep"))]
pub build_depends_indep: Option<Dependency>,
#[cfg_attr(feature = "serde", serde(rename = "Build-Depends-Arch"))]
pub build_depends_arch: Option<Dependency>,
#[cfg_attr(feature = "serde", serde(rename = "Build-Conflicts"))]
pub build_conflicts: Option<Dependency>,
#[cfg_attr(feature = "serde", serde(rename = "Build-Conflicts-Indep"))]
pub build_conflicts_indep: Option<Dependency>,
#[cfg_attr(feature = "serde", serde(rename = "Build-Conflicts-Arch"))]
pub build_conflicts_arch: Option<Dependency>,
}
#[derive(Clone, Debug, PartialEq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "serde", serde(untagged))]
pub enum Vcs {
Git {
#[cfg_attr(feature = "serde", serde(rename = "Vcs-Git"))]
url: String,
},
Svn {
#[cfg_attr(feature = "serde", serde(rename = "Vcs-Svn"))]
url: String,
},
Arch {
#[cfg_attr(feature = "serde", serde(rename = "Vcs-Arch"))]
url: String,
},
Bzr {
#[cfg_attr(feature = "serde", serde(rename = "Vcs-Bzr"))]
url: String,
},
Cvs {
#[cfg_attr(feature = "serde", serde(rename = "Vcs-Cvs"))]
url: String,
},
Darcs {
#[cfg_attr(feature = "serde", serde(rename = "Vcs-Darcs"))]
url: String,
},
Hg {
#[cfg_attr(feature = "serde", serde(rename = "Vcs-Hg"))]
url: String,
},
Mtn {
#[cfg_attr(feature = "serde", serde(rename = "Vcs-Mtn"))]
url: String,
},
}