Skip to main content

module_key_from_normalized

Function module_key_from_normalized 

Source
pub fn module_key_from_normalized(
    path: &str,
    module_roots: &[String],
    module_depth: usize,
) -> String
Expand description

Compute a module key from a normalized path.

Expected input format:

  • forward slashes only
  • no leading ./
  • no leading /

ยงExamples

use tokmd_module_key::module_key_from_normalized;

let roots = vec!["crates".into()];
assert_eq!(
    module_key_from_normalized("crates/foo/src/lib.rs", &roots, 2),
    "crates/foo"
);

// Root-level files return "(root)"
assert_eq!(
    module_key_from_normalized("README.md", &roots, 2),
    "(root)"
);

Depth overflow and non-root directories:

use tokmd_module_key::module_key_from_normalized;

let roots = vec!["crates".into()];

// Non-root directories always map to the first segment
assert_eq!(module_key_from_normalized("src/main.rs", &roots, 2), "src");

// A depth larger than available segments uses all of them
assert_eq!(
    module_key_from_normalized("crates/foo/bar/baz.rs", &roots, 10),
    "crates/foo/bar"
);