pub unsafe trait VaArgSafe: Copy { }core.c_variadic #44930)Expand description
Types that are valid to read using VaList::next_arg.
This trait is implemented for primitive types that have a variable argument application-binary interface (ABI) on the current platform. It is always implemented for:
c_int,c_longandc_longlongc_uint,c_ulongandc_ulonglongc_double*const Tand*mut T
Implementations for e.g. i32 or usize shouldn’t be relied upon directly,
because they may not be available on all platforms.
§Safety
When C passes variable arguments, signed integers smaller than c_int are promoted
to c_int, unsigned integers smaller than c_uint are promoted to c_uint,
and c_float is promoted to c_double. Implementing this trait for types that are
subject to this promotion rule is invalid.
This trait is only implemented for 128-bit integers when the platform defines the __int128
type.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".