pub async fn load_resolved_versions(
uri: &Url,
lockfile_cache: &Arc<LockFileCache>,
ecosystem: &dyn Ecosystem,
) -> (HashMap<PackageName, ConcreteVersion>, HashMap<PackageName, Vec<ConcreteVersion>>)Expand description
Loads resolved versions from lock file for a given manifest URI.
Uses the ecosystem’s lockfile provider to parse the lock file, then
split_resolved_packages. Both returned maps are empty if no lock file is found or
parsing fails.
§Examples
use deps_core::HttpCache;
use deps_core::lockfile::LockFileCache;
use deps_core::test_util::test_uri;
use deps_engine::classify::resolved::load_resolved_versions;
use deps_engine::setup::CargoEcosystem;
use std::sync::Arc;
#[tokio::main]
async fn main() {
let ecosystem = CargoEcosystem::new(Arc::new(HttpCache::new()));
let lockfile_cache = Arc::new(LockFileCache::new());
// No `Cargo.lock` exists at this synthetic path, so both maps come back empty —
// the same fast path a manifest with no lock file takes in production.
let uri = test_uri("/nonexistent-for-doctest/Cargo.toml");
let (versions, candidates) =
load_resolved_versions(&uri, &lockfile_cache, &ecosystem).await;
assert!(versions.is_empty());
assert!(candidates.is_empty());
}