#[non_exhaustive]pub enum CallingConvention {
SystemV,
WasmBasicCAbi,
WindowsFastcall,
AppleAarch64,
}
Expand description
The calling convention, which specifies things like which registers are used for passing arguments, which registers are callee-saved, and so on.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
SystemV
“System V”, which is used on most Unix-like platfoms. Note that the specific conventions vary between hardware architectures; for example, x86-32’s “System V” is entirely different from x86-64’s “System V”.
WasmBasicCAbi
The WebAssembly C ABI. https://github.com/WebAssembly/tool-conventions/blob/master/BasicCABI.md
WindowsFastcall
“Windows Fastcall”, which is used on Windows. Note that like “System V”, this varies between hardware architectures. On x86-32 it describes what Windows documentation calls “fastcall”, and on x86-64 it describes what Windows documentation often just calls the Windows x64 calling convention (though the compiler still recognizes “fastcall” as an alias for it).
AppleAarch64
Apple Aarch64 platforms use their own variant of the common Aarch64 calling convention.
https://developer.apple.com/documentation/xcode/writing_arm64_code_for_apple_platforms
Trait Implementations§
Source§impl Clone for CallingConvention
impl Clone for CallingConvention
Source§fn clone(&self) -> CallingConvention
fn clone(&self) -> CallingConvention
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for CallingConvention
impl Debug for CallingConvention
Source§impl Hash for CallingConvention
impl Hash for CallingConvention
Source§impl PartialEq for CallingConvention
impl PartialEq for CallingConvention
impl Copy for CallingConvention
impl Eq for CallingConvention
impl StructuralPartialEq for CallingConvention
Auto Trait Implementations§
impl Freeze for CallingConvention
impl RefUnwindSafe for CallingConvention
impl Send for CallingConvention
impl Sync for CallingConvention
impl Unpin for CallingConvention
impl UnwindSafe for CallingConvention
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out
indicating that a T
is niched.