HasAbi

Trait HasAbi 

Source
pub trait HasAbi<const ABI: u8>: FnPtr { }
Expand description

Marker trait implemented for function pointers of a specific ABI.

For example:

  • HasAbi<Abi::C> for extern "C" fn(...)
  • HasAbi<Abi::Sysv64> for extern "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§

Source§

impl<Ret: 'static> HasAbi<{$crate::abi!($call_conv)}> for fn() -> Ret

Source§

impl<Ret: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "C" fn() -> Ret

Source§

impl<Ret: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "system" fn() -> Ret

Source§

impl<Ret: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "sysv64" fn() -> Ret

Source§

impl<Ret: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe fn() -> Ret

Source§

impl<Ret: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "C" fn() -> Ret

Source§

impl<Ret: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "system" fn() -> Ret

Source§

impl<Ret: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "sysv64" fn() -> Ret

Source§

impl<Ret: 'static, A: 'static> HasAbi<{$crate::abi!($call_conv)}> for fn(A) -> Ret

Source§

impl<Ret: 'static, A: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "C" fn(A) -> Ret

Source§

impl<Ret: 'static, A: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "system" fn(A) -> Ret

Source§

impl<Ret: 'static, A: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "sysv64" fn(A) -> Ret

Source§

impl<Ret: 'static, A: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe fn(A) -> Ret

Source§

impl<Ret: 'static, A: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "C" fn(A) -> Ret

Source§

impl<Ret: 'static, A: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "system" fn(A) -> Ret

Source§

impl<Ret: 'static, A: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "sysv64" fn(A) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::abi!($call_conv)}> for fn(A, B) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "C" fn(A, B) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "system" fn(A, B) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "sysv64" fn(A, B) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe fn(A, B) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "C" fn(A, B) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "system" fn(A, B) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "sysv64" fn(A, B) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::abi!($call_conv)}> for fn(A, B, C) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "C" fn(A, B, C) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "system" fn(A, B, C) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "sysv64" fn(A, B, C) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe fn(A, B, C) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "C" fn(A, B, C) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "system" fn(A, B, C) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "sysv64" fn(A, B, C) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::abi!($call_conv)}> for fn(A, B, C, D) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "C" fn(A, B, C, D) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "system" fn(A, B, C, D) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "sysv64" fn(A, B, C, D) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe fn(A, B, C, D) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "C" fn(A, B, C, D) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "system" fn(A, B, C, D) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "sysv64" fn(A, B, C, D) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::abi!($call_conv)}> for fn(A, B, C, D, E) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "C" fn(A, B, C, D, E) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "system" fn(A, B, C, D, E) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "sysv64" fn(A, B, C, D, E) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe fn(A, B, C, D, E) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "C" fn(A, B, C, D, E) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "system" fn(A, B, C, D, E) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "sysv64" fn(A, B, C, D, E) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::abi!($call_conv)}> for fn(A, B, C, D, E, F) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "C" fn(A, B, C, D, E, F) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "system" fn(A, B, C, D, E, F) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::abi!($call_conv)}> for extern "sysv64" fn(A, B, C, D, E, F) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe fn(A, B, C, D, E, F) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "C" fn(A, B, C, D, E, F) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "system" fn(A, B, C, D, E, F) -> Ret

Source§

impl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> HasAbi<{$crate::abi!($call_conv)}> for unsafe extern "sysv64" fn(A, B, C, D, E, F) -> Ret

Implementors§