335c9609c6
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.
383 B
383 B
Equivalent to C's unsigned long
type.
This type will always be [u32
] or [u64
]. Most notably, many Linux-based systems assume an u64
, but Windows assumes u32
. The C standard technically only requires that this type be an unsigned integer with the size of a long
, although in practice, no system would have a ulong
that is neither a u32
nor u64
.