From 4b71c8332daf9ef461891d278f2cf3530baaa833 Mon Sep 17 00:00:00 2001 From: Arnaud Date: Tue, 12 Jan 2021 17:41:45 +0100 Subject: Document vfs private items --- crates/vfs/src/loader.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'crates/vfs/src/loader.rs') diff --git a/crates/vfs/src/loader.rs b/crates/vfs/src/loader.rs index 399015043..d3bdae562 100644 --- a/crates/vfs/src/loader.rs +++ b/crates/vfs/src/loader.rs @@ -147,6 +147,13 @@ impl Directories { pub fn contains_dir(&self, path: &AbsPath) -> bool { self.includes_path(path) } + + /// Returns `true` if `path` is included in `self`. + /// + /// It is included if + /// - An element in `self.include` is a prefix of `path`. + /// - This path is longer than any element in `self.exclude` that is a prefix + /// of `path`. In case of equality, exclusion wins. fn includes_path(&self, path: &AbsPath) -> bool { let mut include: Option<&AbsPathBuf> = None; for incl in &self.include { @@ -170,6 +177,14 @@ impl Directories { } } +/// Returns : +/// ```text +/// Directories { +/// extensions: ["rs"], +/// include: [base], +/// exclude: [base/], +/// } +/// ``` fn dirs(base: AbsPathBuf, exclude: &[&str]) -> Directories { let exclude = exclude.iter().map(|it| base.join(it)).collect::>(); Directories { extensions: vec!["rs".to_string()], include: vec![base], exclude } -- cgit v1.2.3