#macro #file

pathsep

a small macro to enable easy path construction in other macro calls

2 releases

0.1.1 Nov 19, 2018
0.1.0 Oct 26, 2018

#6 in #files

Download history 68/week @ 2024-10-29 14/week @ 2024-11-05 4/week @ 2024-11-19 13/week @ 2024-11-26 53/week @ 2024-12-03 47/week @ 2024-12-10 12/week @ 2024-12-17 3/week @ 2025-01-14 18/week @ 2025-02-04 43/week @ 2025-02-11

62 downloads per month
Used in rusty-krab-manager

Apache-2.0/MIT

7KB

Get the path separator for your OS

When you want to include!(_) generated files, cargo will ask you to put them in $OUT_DIR. However, the "usual" way of

include!(concat!(env!("OUT_DIR"), "/somefile.rs"));

will fail on some windows systems, because they fail to understand the / path separator. This crate allows you to replace that with:

include!(join_path!(env!("OUT_DIR"), "somefile.rs"));

This will work on all operating systems. You can create paths starting with the separator by prepending / to the join_path! arguments:

join_path!(/ "usr", "local", "lib");

Usage

Add this to your Cargo.toml:

pathsep = "0.1"

Then you can use #[macro_use] extern crate pathsep; in your crate root. As of Rust 1.30, you can also omit the #[macro_use] and use pathsep::join_path; directly.

License

This code is licensed under the terms of the Apache License 2.0 or the MIT license, at your discretion.


lib.rs:

A small macro that gives us the path separator of the target system

This can be used in conjunction with include!(..) or include_str!(..) and concat!(..) to build paths.

Examples

#[macro_use] extern crate pathsep;

include!(concat!(env!("OUT_DIR"), path_separator!(), "generated.rs"));

The same can be more succinctly written as:

#[macro_use] extern crate pathsep;

include!(path_join!(env!("OUT_DIR"), "generated.rs"));

No runtime deps