The ability to interoperate with C code via FFI is not limited to crates using std; this allows using these types without std. The existing types in `std::os::raw` become type aliases for the ones in `core::ffi`. This uses type aliases rather than re-exports, to allow the std types to remain stable while the core types are unstable. This also moves the currently unstable `NonZero_` variants and `c_size_t`/`c_ssize_t`/`c_ptrdiff_t` types to `core::ffi`, while leaving them unstable.
418 B
418 B
Equivalent to C's signed long (long) type.
This type will always be [i32] or [i64]. Most notably, many Linux-based systems assume an i64, but Windows assumes i32. The C standard technically only requires that this type be a signed integer that is at least 32 bits and at least the size of an int, although in practice, no system would have a long that is neither an i32 nor i64.