This crate provides function-like macros to check or operate paths relative to CARGOMANIFESTDIR at compile time.
```rust
println!(path!("Cargo.toml")); println!(path!("src/lib.rs")); println!(path!("src", "lib.rs")); println!(path!("src", "lib.rs", "/bin")); println!(path!("/usr"));
println!(existpath!("Cargo.toml")); println!(directorypath!("src")); println!(notdirectorypath!("Cargo.toml")); println!(file_path!("Cargo.toml"));
println!(relativepath!("Cargo.toml")); println!(directoryrelativepath!("src")); println!(notdirectoryrelativepath!("Cargo.toml")); println!(filerelativepath!("Cargo.toml"));
println!(filename!("src/lib.rs")); println!(filestem!("src/lib.rs")); println!(extension!("src/lib.rs")); println!(parent!("src/lib.rs"));
// The tuple
feature allows these macros to support inputting nested literal string tuples, which is useful when you want to use these macros inside a macro_rules!
macro and concatenate with other literal strings.
// $x:expr
matchers can be used in these macros thus.
{ println!(path!(("foo",))); println!(path!(("foo", "bar"))); println!(path!("a", ("foo", "bar"))); println!(path!(("foo", "bar"), "a")); println!(path!(("foo", "bar"), ("a", "b"))); println!(path!(("foo", "bar", ("a", "b")), ("c", "d"))); } ```
https://crates.io/crates/manifest-dir-macros
https://docs.rs/manifest-dir-macros