pub enum CallDispatch {
Direct = 0,
Branch = 1,
Indirect = 2,
Vtable = 3,
}Expand description
↦ Mechanism by which control transfers to the callee.
📍 core/ops
Ordered: Direct < Branch < Indirect < Vtable.
Later variants introduce more indirection and reduce static visibility.
Variants§
Direct = 0
Statically resolved call.
Boundary: the call site encodes the callee directly.
Branch = 1
Selection among a finite set via conditional branch.
Boundary: dispatch occurs by matching a discriminant.
Indirect = 2
Call via function pointer.
Boundary: callee address is loaded from memory at runtime.
Vtable = 3
Dynamic dispatch via trait object.
Boundary: method pointer resolved through a vtable.
Trait Implementations§
Source§impl Clone for CallDispatch
impl Clone for CallDispatch
Source§fn clone(&self) -> CallDispatch
fn clone(&self) -> CallDispatch
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for CallDispatch
Source§impl Debug for CallDispatch
impl Debug for CallDispatch
impl Eq for CallDispatch
Source§impl Hash for CallDispatch
impl Hash for CallDispatch
Source§impl Ord for CallDispatch
impl Ord for CallDispatch
Source§fn cmp(&self, other: &CallDispatch) -> Ordering
fn cmp(&self, other: &CallDispatch) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for CallDispatch
impl PartialEq for CallDispatch
Source§fn eq(&self, other: &CallDispatch) -> bool
fn eq(&self, other: &CallDispatch) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl PartialOrd for CallDispatch
impl PartialOrd for CallDispatch
impl StructuralPartialEq for CallDispatch
Auto Trait Implementations§
impl Freeze for CallDispatch
impl RefUnwindSafe for CallDispatch
impl Send for CallDispatch
impl Sync for CallDispatch
impl Unpin for CallDispatch
impl UnsafeUnpin for CallDispatch
impl UnwindSafe for CallDispatch
Blanket Implementations§
Source§impl<T> AnyExt for T
impl<T> AnyExt for T
Source§fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64
fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64
Returns a deterministic hash of the
TypeId of Self using a custom hasher.Source§fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
Source§fn as_any_box(self: Box<Self>) -> Box<dyn Any>where
Self: Sized,
fn as_any_box(self: Box<Self>) -> Box<dyn Any>where
Self: Sized,
Available on crate feature
alloc only.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
Mutably borrows from an owned value. Read more
Source§impl<T> ByteSized for T
impl<T> ByteSized for T
Source§const BYTE_ALIGN: usize = _
const BYTE_ALIGN: usize = _
The alignment of this type in bytes.
Source§fn byte_align(&self) -> usize
fn byte_align(&self) -> usize
Returns the alignment of this type in bytes.
Source§fn ptr_size_ratio(&self) -> [usize; 2]
fn ptr_size_ratio(&self) -> [usize; 2]
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
Source§impl<T> MemExt for Twhere
T: ?Sized,
impl<T> MemExt for Twhere
T: ?Sized,
Source§const NEEDS_DROP: bool = _
const NEEDS_DROP: bool = _
Know whether dropping values of this type matters, in compile-time.
Source§fn mem_align_of<T>() -> usize
fn mem_align_of<T>() -> usize
Returns the minimum alignment of the type in bytes. Read more
Source§fn mem_align_of_val(&self) -> usize
fn mem_align_of_val(&self) -> usize
Returns the alignment of the pointed-to value in bytes. Read more
Source§fn mem_size_of<T>() -> usize
fn mem_size_of<T>() -> usize
Returns the size of a type in bytes. Read more
Source§fn mem_size_of_val(&self) -> usize
fn mem_size_of_val(&self) -> usize
Returns the size of the pointed-to value in bytes. Read more
Source§fn mem_needs_drop(&self) -> bool
fn mem_needs_drop(&self) -> bool
Returns
true if dropping values of this type matters. Read moreSource§fn mem_forget(self)where
Self: Sized,
fn mem_forget(self)where
Self: Sized,
Forgets about
self without running its destructor. Read moreSource§fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
Source§unsafe fn mem_zeroed<T>() -> T
unsafe fn mem_zeroed<T>() -> T
Available on crate feature
unsafe_layout only.Returns the value of type
T represented by the all-zero byte-pattern. Read moreSource§unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
Available on crate feature
unsafe_layout only.Returns the value of type
T represented by the all-zero byte-pattern. Read moreSource§fn mem_as_bytes(&self) -> &[u8] ⓘ
fn mem_as_bytes(&self) -> &[u8] ⓘ
Available on crate feature
unsafe_slice only.