メイン関数
main
関数 を含むクレートは実行可能ファイルにコンパイルできる。もし
main
関数があれば、それは引数をとってはならず、いかなるトレイトやライフタイムの境界も宣言してはならず、いかなる where 句 も所持してはならず、またTermination
トレイトを実装する型を戻さなければならない。fn main() {}
fn main() -> ! { std::process::exit(0); }
fn main() -> impl std::process::Termination { std::process::ExitCode::SUCCESS }
main
関数はインポートになりうる、例えば、外部のクレートや現在のそれから。mod foo { pub fn bar() { println!("Hello, world!"); } } use foo::bar as main;
Note:
Termination
の実装を伴う標準ライブラリに含まれる型:
()
!
Infallible
ExitCode
Result<T, E> where T: Termination, E: Debug