pub enum Abi {
Rust,
C {
unwind: bool,
},
Cdecl {
unwind: bool,
},
Stdcall {
unwind: bool,
},
Fastcall {
unwind: bool,
},
Aapcs {
unwind: bool,
},
Win64 {
unwind: bool,
},
SysV64 {
unwind: bool,
},
System {
unwind: bool,
},
Other(String),
}
Expand description
The ABI (Application Binary Interface) used by a function.
If a variant has an unwind
field, this means the ABI that it represents can be specified in 2
ways: extern "_"
and extern "_-unwind"
, and a value of true
for that field signifies the
latter variant.
See the Rustonomicon section on unwinding for more info.
Variants§
Rust
The default ABI, but that can also be written explicitly with extern "Rust"
.
C
Can be specified as extern "C"
or, as a shorthand, just extern
.
Cdecl
Can be specified as extern "cdecl"
.
Stdcall
Can be specified as extern "stdcall"
.
Fastcall
Can be specified as extern "fastcall"
.
Aapcs
Can be specified as extern "aapcs"
.
Win64
Can be specified as extern "win64"
.
SysV64
Can be specified as extern "sysv64"
.
System
Can be specified as extern "system"
.
Other(String)
Any other ABI, including unstable ones.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Abi
impl<'de> Deserialize<'de> for Abi
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for Abi
impl StructuralPartialEq for Abi
Auto Trait Implementations§
impl Freeze for Abi
impl RefUnwindSafe for Abi
impl Send for Abi
impl Sync for Abi
impl Unpin for Abi
impl UnwindSafe for Abi
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes
Size for each variant:
Rust
: 0 bytesC
: 9 bytesCdecl
: 9 bytesStdcall
: 9 bytesFastcall
: 9 bytesAapcs
: 9 bytesWin64
: 9 bytesSysV64
: 9 bytesSystem
: 9 bytesOther
: 24 bytes