Open gibfahn opened 2 years ago
Happy to raise a PR for this.
Thanks for creating this issue!
I feel like matching path.exists()
will most meet people's expectations and I worry changing it will break someone and would rather not break compatibility.
I can see us exposing an API with more specific checks (is_file, is_dir, is_symlink) and the corresponding predicate struct could have a follow_symlinks(false)
function to customize it, like we do with utf8 on other predicates.
The main question is ow to expose this. Some ideas:
is_file
, is_dir
, is_symlink
file_type(FileType::File)
file_type(FileType::FILE | FileType::DIR)
.
The docs for
predicates::path::missing()
say:However, if the path is a symlink pointing to nothing, then it will be treated as not existing, when in fact the symlink is a file that exists.
Open to the idea that a broken link should count as not existing, but either way it would be useful for the function's docs to cover this.
It also gets complicated as a symlink may start to exist or not exist based on changes to other parts of the filesystem.
I tried this code:
I expected the assert to pass, but it failed.
Meta
predicates-rs version:
2.1.0
rustc --version
:1.57.0
I think instead of: