perl-module-resolution-uri 0.12.2

Resolve Perl module names to URIs with workspace-safe precedence and timeouts
Documentation

perl-module-resolution-uri

Resolve a Perl module name to a file:// URI.

This crate is the URI-facing leg of module resolution. It keeps the search order deterministic, respects a timeout budget, and returns a compact outcome enum instead of throwing resolution policy into caller code.

Pipeline

  • perl-module-resolution-path resolves to filesystem paths.
  • perl-module-resolution-uri resolves to file URIs and tracks NotFound vs TimedOut.
  • Higher-level workspace tools can pick the variant that fits their editor or transport layer.

Key API

  • ModuleUriResolution
  • resolve_module_uri

Example

use perl_module_resolution_uri::{ModuleUriResolution, resolve_module_uri};
use std::time::Duration;

let result = resolve_module_uri(
    "Foo::Bar",
    &[],
    &["file:///workspace".to_string()],
    &["lib".to_string()],
    false,
    &[],
    Duration::from_millis(100),
);

match result {
    ModuleUriResolution::Resolved(uri) => assert!(uri.starts_with("file://")),
    ModuleUriResolution::NotFound | ModuleUriResolution::TimedOut => {}
}