use std::collections::BTreeMap;
use std::path::PathBuf;
use semver::Version;
use crate::dependency::DependencyName;
use crate::hash::ContentHash;
use crate::lockfile::ResolvedSource;
use crate::signing::VerifyingKey;
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct MaterializedFile {
pub path: PathBuf,
pub source: ResolvedSource,
}
#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub struct ResolvedTree {
pub dependencies: BTreeMap<DependencyName, ResolvedDependency>,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct ResolvedDependency {
pub source: ResolvedSource,
pub version: Version,
pub checksum: ContentHash,
pub signer: Option<VerifyingKey>,
pub dependencies: BTreeMap<DependencyName, ResolvedDependency>,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct ResolvedModule {
pub version: Version,
pub checksum: ContentHash,
pub signer: Option<VerifyingKey>,
pub dependencies: BTreeMap<DependencyName, ResolvedDependency>,
}