2个版本
0.1.4 | 2024年7月5日 |
---|---|
0.1.3 | 2024年4月4日 |
#327 在 进程宏
每月124次下载
6KB
include_absolute_path
宏库
此Rust项目提供了一个进程宏 include_absolute_path!
,用于返回文件或目录的绝对路径。该宏接受相对路径和绝对路径,如果指定的文件不存在,则会panic。虽然 include_str
存在,但在构建/测试脚本或知道相对路径不会改变的情况下重新加载文件时,这很有用。
用法
将以下内容添加到你的 Cargo.toml
[dependencies]
include_absolute_path = { path = "0.1" }
然后,在你的Rust代码中,你可以像下面这样使用 include_absolute_path! 宏
const FILE: &'static str = include_absolute_path!("src/main.rs");
这将把 FILE
设置为相对于调用宏的文件的 src/main.rs
文件的绝对路径。
工作原理
include_absolute_path!
宏通过解析输入路径并检查它是否是绝对路径来工作。如果是绝对路径,则返回该路径。如果不是,它将路径与调用宏的文件的目录连接起来以获取绝对路径。
该宏使用 proc_macro::Span::call_site().source_file().path()
函数来获取调用宏的文件的路径。目前,此函数仅通过 proc_macro_span
功能在nightly中可用
在返回路径之前,宏会检查文件是否存在。如果文件不存在,则使用指示文件不存在的消息panic。
许可证
本项目采用MIT许可证。有关详细信息,请参阅LICENSE文件。
依赖关系
~245–680KB
~16K SLoC