pub fn prepare_fetch(
parse_result: &dyn ParseResult,
formatter: &dyn EcosystemFormatter,
ecosystem: EcosystemId,
resolved_versions: &HashMap<PackageName, ConcreteVersion>,
resolved_version_candidates: &HashMap<PackageName, Vec<ConcreteVersion>>,
) -> FetchPreparationExpand description
Builds a FetchPreparation from a parsed manifest and its resolved lock-file state.
ยงExamples
use deps_core::lsp_helpers::{
DiagnosticMessages, DiagnosticPolicy, OsvNaming, PackageNaming, PackageRendering,
RequirementResolution, SourcePolicy,
};
use deps_core::test_util::stub_parse_result_with_dependencies;
use deps_core::{ConcreteVersion, EcosystemId, PackageName};
use deps_engine::classify::fetch::prepare_fetch;
use std::collections::HashMap;
struct SimpleFormatter;
impl PackageNaming for SimpleFormatter {}
impl PackageRendering for SimpleFormatter {
fn format_version_for_text_edit(&self, version: &ConcreteVersion) -> String {
version.to_string()
}
fn package_url(&self, name: &PackageName) -> String {
name.as_str().to_string()
}
}
impl RequirementResolution for SimpleFormatter {}
impl DiagnosticMessages for SimpleFormatter {}
impl DiagnosticPolicy for SimpleFormatter {}
impl SourcePolicy for SimpleFormatter {}
impl OsvNaming for SimpleFormatter {}
let parsed = stub_parse_result_with_dependencies(2);
let prep = prepare_fetch(
parsed.as_ref(),
&SimpleFormatter,
EcosystemId::Cargo,
&HashMap::new(),
&HashMap::new(),
);
assert_eq!(prep.dep_sources.len(), 2);
assert!(prep.selection_context.minimum_stability().is_none());