Enum CallType
pub enum CallType {
Call,
CallVirt,
TailCall,
NewObj,
Calli,
Ldftn,
LdVirtFtn,
}Expand description
Type of call instruction.
Represents the different CIL opcodes that can invoke methods, ranging from direct calls to virtual dispatch and indirect function pointer invocations.
Variants§
Call
Direct call instruction (call).
CallVirt
Virtual call instruction (callvirt).
TailCall
Tail call (tail.call or tail.callvirt).
NewObj
Object construction (newobj).
Calli
Indirect call through function pointer (calli).
Ldftn
Load function pointer (ldftn).
LdVirtFtn
Load virtual function pointer (ldvirtftn).
Implementations§
§impl CallType
impl CallType
pub const fn is_virtual(&self) -> bool
pub const fn is_virtual(&self) -> bool
Returns true if this is a virtual call that requires runtime dispatch.
Virtual calls use the actual runtime type of the receiver object to determine the method implementation to invoke.
§Returns
true for CallVirt and LdVirtFtn call types, false otherwise.
pub const fn is_indirect(&self) -> bool
pub const fn is_indirect(&self) -> bool
Returns true if this is an indirect call through a function pointer.
Indirect calls invoke a method through a computed address rather than a statically resolved method token.
§Returns
true for Calli call type, false otherwise.
pub const fn is_constructor(&self) -> bool
pub const fn is_constructor(&self) -> bool
Returns true if this call creates a new object.
Constructor calls allocate a new object and invoke its constructor.
§Returns
true for NewObj call type, false otherwise.
Trait Implementations§
impl Copy for CallType
impl Eq for CallType
impl StructuralPartialEq for CallType
Auto Trait Implementations§
impl Freeze for CallType
impl RefUnwindSafe for CallType
impl Send for CallType
impl Sync for CallType
impl Unpin for CallType
impl UnsafeUnpin for CallType
impl UnwindSafe for CallType
Blanket Implementations§
impl<T> Boilerplate for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for T
impl<T> Downcast for T
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§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.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.