这可能是一个非常愚蠢的问题,但我想知道是否可以从模块中公开类型。如果这听起来很模糊,我希望以下信息能够阐明我想要实现的目标。
假设我有以下文件结构:
Project
|-Units
| |-Length
| | |-Meter.rs
| | |-mod.rs
| |-mod.rs
|-main.rs
Run Code Online (Sandbox Code Playgroud)
Units/mod.rs 文件:
pub mod Length;
Run Code Online (Sandbox Code Playgroud)
单位/长度/mod.rs 文件:
pub mod Meter;
Run Code Online (Sandbox Code Playgroud)
单位/长度/Meter.rs 文件:
pub struct Meter
{
someValue: f64
}
// some implementation here
Run Code Online (Sandbox Code Playgroud)
现在,当我想在 main 中使用 Meter 结构时,我似乎需要编写以下内容:
let someMeter = Units::Length::Meter::Meter::new(5.3);
Run Code Online (Sandbox Code Playgroud)
我想写的是
let someMeter = Units::Length::Meter::new(5.3);
Run Code Online (Sandbox Code Playgroud)
尽管我不确定应该在 mod.rs 文件中更改什么才能实现此目的。我真的不想更改文件夹结构,因为我喜欢它的组织方式。任何对我做错了什么的洞察将不胜感激。
我承认在此示例中我没有遵循 Rust 命名约定。
好吧,我想我明白了。
首先,我必须更改命名约定,以免模块和结构(Meter 模块和 Meter 结构)之间产生冲突。然后我必须将units/length/mod.rs 文件更改为:
mod meter;
pub use self::meter::Meter;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1899 次 |
| 最近记录: |