rustix/
ffi.rs

1//! Utilities related to FFI bindings.
2
3// If we have std, use it.
4#[cfg(not(windows))]
5#[cfg(feature = "std")]
6pub use std::ffi::{CStr, CString, FromBytesWithNulError, NulError};
7#[cfg(feature = "std")]
8pub use std::os::raw::{
9    c_char, c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, c_void,
10};
11
12// If we don't have std, we can depend on core and alloc having these features
13// in Rust 1.64+.
14#[cfg(not(windows))]
15#[cfg(all(feature = "alloc", not(feature = "std")))]
16pub use alloc::ffi::{CString, NulError};
17#[cfg(not(feature = "std"))]
18pub use core::ffi::{
19    c_char, c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, c_void,
20};
21#[cfg(not(windows))]
22#[cfg(not(feature = "std"))]
23pub use core::ffi::{CStr, FromBytesWithNulError};