如何自动导入 Rust 子模块

问题描述 投票:0回答:1

有没有办法让我不必显式地声明

use
我声明的每个模块(也不完全限定它们)?

我正在遵循 Rust 教程,该教程让我拆分一个模块来分离一些代码,然后我在父模块中的一些代码中使用所有子模块。所以模块文件夹看起来像这样(该教程是针对使用 ECS 的)

  • 系统/
    • mod.rs
    • player_input.rs
    • hud.rs
    • 运动.rs

并且在

mod.rs
中我有以下代码:

    mod player_input;
    mod hud;
    mod movement;
    
    use self::{player_input::*, hud::*, movement::*}

如果我尝试将 use 语句缩短为

use self::*;
,我会收到此错误:

... unresolved import `self::*`
| use self::*;
|     ^^^^^^^ cannot glob-import a module into itself

在进一步阅读本文后,我意识到我必须递归地导入子模块,所以这是有道理的,但是有没有办法让我避免必须显式使用我的所有子模块(或完全限定它们)。

我知道我可以让我的编辑器在我键入时自动使用内容,但这仍然会在我的代码文件顶部留下一团糟,如果我可以避免的话,我不喜欢“让 IDE 处理它”。

rust module include
1个回答
0
投票

您可以

include!
这些文件而不是使它们成为子模块:

include!("player_input.rs");
include!("hud.rs");
include!("movement.rs");

但我真的不会,宏文档本身建议不要以这种方式使用它。

© www.soinside.com 2019 - 2024. All rights reserved.