#macro #path #file #separator #os #calls #construction

pathsep

一个小型宏,用于在其他宏调用中轻松构建路径

2 个版本

0.1.1 2018 年 11 月 19 日
0.1.0 2018 年 10 月 26 日

1779Rust 模式

Download history 47/week @ 2024-04-01 4/week @ 2024-04-08 25/week @ 2024-04-29 1/week @ 2024-05-06 22/week @ 2024-05-13 6/week @ 2024-05-20 26/week @ 2024-06-03 10/week @ 2024-06-10 5/week @ 2024-06-17 40/week @ 2024-06-24 21/week @ 2024-07-08 7/week @ 2024-07-15

每月 68 次下载
2 个crate 中使用

Apache-2.0/MIT

7KB

获取您操作系统的路径分隔符

当您想要 include!(_) 生成文件时,cargo 会要求您将它们放在 $OUT_DIR 中。然而,"常规"的方式在

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

在某些 Windows 系统上会失败,因为它们无法理解 / 路径分隔符。此 crate 允许您将其替换为

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

这将适用于所有操作系统。您可以通过在 / 上前缀 join_path! 参数来创建以分隔符开始的路径

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

用法

将其添加到您的 Cargo.toml 中

pathsep = "0.1"

然后您可以在 crate 根目录中使用 #[macro_use] extern crate pathsep;。从 Rust 1.30 开始,您也可以直接省略 #[macro_use]use pathsep::join_path;

许可证

本代码根据 Apache 许可证 2.0 或 MIT 许可证条款许可,由您自行选择。


lib.rs:

一个小型宏,提供目标系统的路径分隔符

这可以与 include!(..)include_str!(..)concat!(..) 一起使用来构建路径。

示例

#[macro_use] extern crate pathsep;

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

可以更简洁地写成

#[macro_use] extern crate pathsep;

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

无运行时依赖