8

私が見つけたすべての例は、 create alib.rsを作成し、そのファイル内で create mod foo;mod bar;for each filefoo.rsなどを作成しますbar.rs

基本的に私が望むのは、クレートを複数のファイルに分割することですが、ファイルごとに多くのモジュールを導入する必要はありません。これはRustでは不可能ですか?

4

1 に答える 1

11

別のソース ファイルをインクルードするには、それが独自のモジュールである必要があります。

ただし、これは、この事実を API で公開する必要があるという意味ではありません。たとえば、次のようなファイルにコードを入れたいとしますhidden.rs

pub fn inside_hidden() {}

lib.rsファイルで、このモジュールを公開できます。

#![crate_type = "lib"]

pub mod hidden;

ただし、ライブラリがサブモジュールを必要としない場合は、hiddenモジュールを秘密にしておき、代わりにその内容をトップレベル モジュールのメンバーとして公開することをお勧めします。

#![crate_type = "lib"]

pub use hidden::inside_hidden;

mod hidden;

hiddenこのようにして、ユーザーはサブモジュールがあることを知りません。inside_hidden最上位モジュールのメンバーであるかのように表示されます。

于 2014-06-05T23:11:00.213 に答える