#module #list #macro #name #generate #relative-path #cargo-manifest

list-modules

这是一个用于生成项目源代码目录内模块名称字符串切片列表的proc宏。

4个版本

0.1.6 2023年4月16日
0.1.5 2023年4月16日

#1051 in Proc宏

Download history 33/week @ 2024-04-01

每月60次下载

GPL-3.0-or-later

7KB

列表模块Proc宏

此宏创建了一个常量字符串切片列表,包含指示的crate模块文件夹的子模块名称。路径相对于cargo清单目录指定。

例如,在以下文件树中的mod.rs中调用此宏,使用list_modules::here!("parent/");...

parent/
    mod.rs
    child_1.rs
    child_2/
        mod.rs
        internal.rs
        other_internal/
            ...
        ...
    child_3.rs
    child_4.rs
    ...
    child_N/
        mod.rs

...将生成以下列表扩展

pub const LIST: [&str; N] = [
    "child_1",
    "child_2",
    "child_3",
    ...
    "child_N",
];

注意,这是唯一保证的行为。


lib.rs:

列表模块Proc宏

此宏创建了一个常量字符串切片列表,包含指示的crate模块文件夹的子模块名称。路径相对于cargo清单目录指定。

例如,在以下文件树中的mod.rs中调用此宏,使用list_modules::here!("parent/");...

parent/
    mod.rs
    child_1.rs
    child_2/
        mod.rs
        internal.rs
        other_internal/
            ...
        ...
    child_3.rs
    child_4.rs
    ...
    child_N/
        mod.rs

...将生成以下列表扩展

pub const LIST: [&str; N] = [
    "child_1",
    "child_2",
    "child_3",
    ...
    "child_N",
];

注意,这是唯一保证的行为。

依赖

~280–730KB
~17K SLoC