【问题标题】:How to avoid redundant module naming for Single struct modules in rust?如何避免 rust 中单个结构模块的冗余模块命名?
【发布时间】:2020-12-31 20:32:05
【问题描述】:

也许这只是困扰我,但在某些情况下,我希望每个模块文件都有一个结构。

假设我有一个名为 User 的结构,如下所示:

struct User {
    name: String
}

假设我有一个文件结构,例如用户结构代码位于 src/models/user.rs 中的位置,如下所示:

src/
    models/
           user.rs

现在我希望能够像这样使用 User 结构:

use crate::models::User;

当然不可能。相反,它需要被引用:

use crate::models::user::User;

在我看来,这看起来很丑陋,如果 user User 这两个词都是模块路径的一部分,我认为这是多余的。

有没有像刚才描述的那样“笨拙”的解决方案?

我可能错过了有关 rust 模块命名系统如何工作的一些内容。

【问题讨论】:

    标签: rust module


    【解决方案1】:

    您可以在models 模块中使用pub use user::User;re-export User 结构,并可选择将user 子模块设为私有(这样models 之外的任何人都无法访问它)。在外部,User 结构可以被称为models 模块的成员crate::models::User

    另见:

    【讨论】:

    • 非常感谢!所以我真的很怀念。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    • 2012-11-17
    • 1970-01-01
    相关资源
    最近更新 更多