use std::collections::BTreeMap;
use std::path::PathBuf;
#[derive(Clone, Debug)]
pub enum Dependency {
Hash { hash: String },
Registry { name: String, registry: String },
Path { path: PathBuf },
}
#[derive(Clone, Debug)]
pub struct LockedDep {
pub name: String,
pub hash: String,
pub source: String, }
#[derive(Clone, Debug, Default)]
pub struct Manifest {
pub dependencies: BTreeMap<String, Dependency>,
}
#[derive(Clone, Debug, Default)]
pub struct Lockfile {
pub locked: BTreeMap<String, LockedDep>,
}
mod lockfile;
mod parse;
mod resolve;
pub use lockfile::{load_lockfile, save_lockfile};
pub use parse::parse_dependencies;
pub use resolve::{dep_source_path, dependency_search_paths, resolve_dependencies};
#[cfg(test)]
mod tests;