pub fn module_key_from_normalized(
path: &str,
module_roots: &[String],
module_depth: usize,
) -> StringExpand 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"
);