1mod checksum;
4mod name;
5mod source;
6
7pub use self::{
8 checksum::Checksum,
9 name::Name,
10 source::{GitReference, SourceId, SourceKind},
11};
12pub use semver::Version;
13
14use crate::dependency::Dependency;
15use serde::{Deserialize, Serialize};
16
17#[derive(Clone, Debug, Deserialize, Eq, PartialEq, PartialOrd, Ord, Serialize)]
19pub struct Package {
20 pub name: Name,
22
23 pub version: Version,
25
26 pub source: Option<SourceId>,
28
29 pub checksum: Option<Checksum>,
31
32 #[serde(default, skip_serializing_if = "Vec::is_empty")]
34 pub dependencies: Vec<Dependency>,
35
36 pub replace: Option<Dependency>,
38}