Expand description
pathbuf
provides a single macro, pathbuf!
, which gives a vec!
-like syntax
for constructing PathBuf
s.
Example
fn do_something(dir: &Path) {
let file_name = pathbuf![dir, "filename.txt"];
if file_name.exists() {
// do something...
}
}
Security
As the macro relies on std::path::PathBuf::push
there is also no protection against path traversal attacks.
Therefore no path element shall be untrusted user input without validation or sanitisation.
An example for a path traversal/override on an UNIX system:
let user_input = "/etc/shadow";
assert_eq!(pathbuf!["/tmp", user_input], PathBuf::from("/etc/shadow"));
Macros
- Creates a
PathBuf
containing the arguments.