Build cross-platform paths at compile time.
First, add trail
to the dependencies section of your Cargo.toml
:
[dependencies]
trail = "0.1"
Next, add the following snippet to the entry point of your crate (lib.rs
or main.rs
):
#[macro_use]
extern crate trail;
You can also use trail!
anywhere else an expression is expected. The expanded output is functionally equivelant to calling Path::new
with a hard coded literal.
Posix
assert_eq!(trail!("", "hello", "world"), Path::new("/hello/world"));
assert_eq!(trail!("hello", "world"), Path::new("hello/world"));
Windows
assert_eq!(trail!("", "hello", "world"), Path::new("\\hello\\world"));
assert_eq!(trail!("hello", "world"), Path::new("hello\\world"));
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.