メイン関数

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 の実装を伴う標準ライブラリに含まれる型: