Внутренние средства (intrinsics)

Примечание: внутренние средства всегда будут иметь нестабильный интерфейс, рекомендуется использовать стабильные интерфейсы libcore, а не внутренние напрямую.

Они импортируются как если бы они были FFI функциями, со специальным rust- intrinsic ABI. Например, если, находясь в отдельном (автономном) контексте, хочется иметь возможность transmute между типами, а также использовать эффективную арифметику указателей, то можно импортировать эти функции через объявление, такое как

#![feature(intrinsics)] fn main() {} extern "rust-intrinsic" { fn transmute<T, U>(x: T) -> U; fn offset<T>(dst: *const T, offset: isize) -> *const T; }

extern "rust-intrinsic" {
    fn transmute<T, U>(x: T) -> U;

    fn offset<T>(dst: *const T, offset: isize) -> *const T;
}

Как и с любыми другими FFI функциями, их вызов всегда небезопасен и помечен как unsafe.