pub trait HasAbi<const ABI: Abi>: FnPtr { }Expand description
Marker trait implemented for extern function pointers of a specific ABI.
For example:
HasAbi<Abi::C>forextern "C" fn(...)HasAbi<Abi::Sysv64>forextern "sysv64" fn(...)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
impl<Ret: 'static> HasAbi<{$crate::Abi::$abi_ident}> for fn() -> Ret
Available on crate feature
nightly only.impl<Ret: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "C" fn() -> Ret
Available on crate feature
nightly only.impl<Ret: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "system" fn() -> Ret
Available on crate feature
nightly only.impl<Ret: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "sysv64" fn() -> Ret
Available on crate feature
nightly only.impl<Ret: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe fn() -> Ret
Available on crate feature
nightly only.impl<Ret: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "C" fn() -> Ret
Available on crate feature
nightly only.impl<Ret: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "system" fn() -> Ret
Available on crate feature
nightly only.impl<Ret: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "sysv64" fn() -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static> HasAbi<{$crate::Abi::$abi_ident}> for fn(A) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "C" fn(A) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "system" fn(A) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "sysv64" fn(A) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe fn(A) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "C" fn(A) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "system" fn(A) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "sysv64" fn(A) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::Abi::$abi_ident}> for fn(A, B) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "C" fn(A, B) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "system" fn(A, B) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "sysv64" fn(A, B) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe fn(A, B) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "C" fn(A, B) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "system" fn(A, B) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "sysv64" fn(A, B) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::Abi::$abi_ident}> for fn(A, B, C) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "C" fn(A, B, C) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "system" fn(A, B, C) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "sysv64" fn(A, B, C) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe fn(A, B, C) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "C" fn(A, B, C) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "system" fn(A, B, C) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "sysv64" fn(A, B, C) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::Abi::$abi_ident}> for fn(A, B, C, D) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "C" fn(A, B, C, D) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "system" fn(A, B, C, D) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "sysv64" fn(A, B, C, D) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe fn(A, B, C, D) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "C" fn(A, B, C, D) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "system" fn(A, B, C, D) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "sysv64" fn(A, B, C, D) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::Abi::$abi_ident}> for fn(A, B, C, D, E) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "C" fn(A, B, C, D, E) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "system" fn(A, B, C, D, E) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "sysv64" fn(A, B, C, D, E) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe fn(A, B, C, D, E) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "C" fn(A, B, C, D, E) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "system" fn(A, B, C, D, E) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "sysv64" fn(A, B, C, D, E) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::Abi::$abi_ident}> for fn(A, B, C, D, E, F) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "C" fn(A, B, C, D, E, F) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "system" fn(A, B, C, D, E, F) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::Abi::$abi_ident}> for extern "sysv64" fn(A, B, C, D, E, F) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe fn(A, B, C, D, E, F) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "C" fn(A, B, C, D, E, F) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "system" fn(A, B, C, D, E, F) -> Ret
Available on crate feature
nightly only.impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe extern "sysv64" fn(A, B, C, D, E, F) -> Ret
Available on crate feature
nightly only.