Enum IntrinsicOp
pub enum IntrinsicOp {
Show 18 variants
Abort,
Assume,
Exit,
PrintStdout,
PrintStderr,
Allocate,
Deallocate,
Spawn,
Join,
RawEq,
AtomicStore,
AtomicLoad,
AtomicCompareExchange,
AtomicFetchAndOp(IntBinOp),
Lock(IntrinsicLockOp),
PointerExposeProvenance,
PointerWithExposedProvenance,
GetUnwindPayload,
}Expand description
The intrinsic operations supported by MiniRust.
Generally we only make things intrinsics if they cannot be operands, i.e.
they are non-deterministic or mutate the global state.
We also make them intrinsic if they return (), because an operand that
does not return anything is kind of odd.
Variants§
Abort
Assume
Exit
PrintStdout
PrintStderr
Allocate
Deallocate
Spawn
Join
RawEq
Determines whether the raw bytes pointed to by two pointers are equal. (Can’t be an operand because it reads from memory.)
AtomicStore
AtomicLoad
AtomicCompareExchange
AtomicFetchAndOp(IntBinOp)
Lock(IntrinsicLockOp)
PointerExposeProvenance
‘Expose’ the provenance a pointer so that it can later be cast to an integer.
The address part of the pointer is stored in destination.
PointerWithExposedProvenance
Create a new pointer from the given address with some previously exposed provenance.
GetUnwindPayload
Access the current unwinding payload. UB if not currently unwinding.
Trait Implementations§
§impl Clone for IntrinsicOp
impl Clone for IntrinsicOp
§fn clone(&self) -> IntrinsicOp
fn clone(&self) -> IntrinsicOp
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 IntrinsicOp
§impl Debug for IntrinsicOp
impl Debug for IntrinsicOp
§impl<'de> Deserialize<'de> for IntrinsicOp
impl<'de> Deserialize<'de> for IntrinsicOp
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<IntrinsicOp, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<IntrinsicOp, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for IntrinsicOp
§impl Hash for IntrinsicOp
impl Hash for IntrinsicOp
§impl Ord for IntrinsicOp
impl Ord for IntrinsicOp
§fn cmp(&self, other: &IntrinsicOp) -> Ordering
fn cmp(&self, other: &IntrinsicOp) -> 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
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
§impl PartialEq for IntrinsicOp
impl PartialEq for IntrinsicOp
§impl PartialOrd for IntrinsicOp
impl PartialOrd for IntrinsicOp
§impl Serialize for IntrinsicOp
impl Serialize for IntrinsicOp
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for IntrinsicOp
Auto Trait Implementations§
impl Freeze for IntrinsicOp
impl RefUnwindSafe for IntrinsicOp
impl Send for IntrinsicOp
impl Sync for IntrinsicOp
impl Unpin for IntrinsicOp
impl UnsafeUnpin for IntrinsicOp
impl UnwindSafe for IntrinsicOp
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> Dedup for T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§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
§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
Compare self to
key and return true if they are equal.impl<T> HashConsable for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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> ⓘ
Converts
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> ⓘ
Converts
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 more