HasAbi

Trait HasAbi 

Source
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> 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::$abi_ident}> for fn() -> Ret

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

impl<Ret: 'static> HasAbi<{$crate::Abi::$abi_ident}> for unsafe fn() -> Ret

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

impl<Ret: 'static, A: 'static> HasAbi<{$crate::Abi::$abi_ident}> for fn(A) -> Ret

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

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

Available on crate feature nightly only.
Source§

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.
Source§

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.
Source§

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.
Source§

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

Available on crate feature nightly only.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.
Source§

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.

Implementors§