Skip to main content

prepare_fetch

Function prepare_fetch 

Source
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>>,
) -> FetchPreparation
Expand 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());