外部dll

externを使用することで、外部のマネージドdllに定義されている、class,struct,enum,functionを使用することができます。

#[link(name="System.Console.dll", publickeytoken="B0 3F 5F 7F 11 D5 0A 3A")]
extern {
    mod System {
        struct Console {}
        impl Console {
            fn WriteLine(_: string) {}
        }
    }
}

fn main() {
    System::Console::WriteLine("hello");
}

link属性にてnameにdll名、publickeytokenにパブリックキートークンを指定します。
.Netでいうところの「名前空間」はmodキーワードで再現します。
dll内で定義されている全てを宣言する必要はありません。Adelie側で使用する構造体名やフィールド名のみの宣言で問題ありません。