The book was located under 'src/doc/trpl' because originally, it was going to be hosted under that URL. Late in the game, before 1.0, we decided that /book was a better one, so we changed the output, but not the input. This causes confusion for no good reason. So we'll change the source directory to look like the output directory, like for every other thing in src/doc.
26 lines
711 B
Markdown
26 lines
711 B
Markdown
% Intrinsics
|
|
|
|
> **Note**: intrinsics will forever have an unstable interface, it is
|
|
> recommended to use the stable interfaces of libcore rather than intrinsics
|
|
> directly.
|
|
|
|
These are imported as if they were FFI functions, with the special
|
|
`rust-intrinsic` ABI. For example, if one was in a freestanding
|
|
context, but wished to be able to `transmute` between types, and
|
|
perform efficient pointer arithmetic, one would import those functions
|
|
via a declaration like
|
|
|
|
```rust
|
|
#![feature(intrinsics)]
|
|
# fn main() {}
|
|
|
|
extern "rust-intrinsic" {
|
|
fn transmute<T, U>(x: T) -> U;
|
|
|
|
fn offset<T>(dst: *const T, offset: isize) -> *const T;
|
|
}
|
|
```
|
|
|
|
As with any other FFI functions, these are always `unsafe` to call.
|
|
|