#file-path #absolute #file-exists #macro #relative-path #called #panic

nightly macro include_absolute_path

宏函数,用于返回指定文件或目录的绝对路径

2个版本

0.1.4 2024年7月5日
0.1.3 2024年4月4日

#327进程宏

Download history 1/week @ 2024-05-18 4/week @ 2024-06-01 3/week @ 2024-06-08 68/week @ 2024-06-29 48/week @ 2024-07-06 1/week @ 2024-07-13 7/week @ 2024-07-27

每月124次下载

MIT 许可证

6KB

include_absolute_path 宏库

Latest Version docs.rs

此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