erg/doc/JA/API/modules/unsound.md
Shunsuke Shibayama 96132b20f6 initial commit
2022-08-10 23:02:27 +09:00

846 B

module unsound

Provides APIs perform unsound and unsafe operations that cannot be guaranteed safe in Erg's type system.

unsafe!

Executes a Unsafe procedure. Just like Rust, Unsafe APIs cannot be called directly, but are all passed as higher-order functions to this procedure.

unsound = import "unsound"

i = unsound.unsafe! do!:
    # convert `Result Int` to `Int`
    unsound.transmute input!().try_into(Int), Int

transmute

第1引数のオブジェクトを第2引数の型へ変換します。型チェックは行われません。 この関数は型システムの型安全性を損ないます。使用の際はバリデーション等を行ってください。

auto_transmute

transmuteとは違い、期待される型に自動で変換します。OcamlのObj.magicと同じ働きをします。