pub enum OperandValue<V> {
    Ref(V, Option<V>, Align),
    Immediate(V),
    Pair(V, V),
}
Expand description

The representation of a Rust value. The enum variant is in fact uniquely determined by the value’s type, but is kept as a safety check.

Variants§

§

Ref(V, Option<V>, Align)

A reference to the actual operand. The data is guaranteed to be valid for the operand’s lifetime. The second value, if any, is the extra data (vtable or length) which indicates that it refers to an unsized rvalue.

§

Immediate(V)

A single LLVM value.

§

Pair(V, V)

A pair of immediate LLVM values. Used by fat pointers too.

Implementations§

source§

impl<'a, 'tcx, V: CodegenObject> OperandValue<V>

source

pub fn store<Bx: BuilderMethods<'a, 'tcx, Value = V>>(
    self,
    bx: &mut Bx,
    dest: PlaceRef<'tcx, V>
)

source

pub fn volatile_store<Bx: BuilderMethods<'a, 'tcx, Value = V>>(
    self,
    bx: &mut Bx,
    dest: PlaceRef<'tcx, V>
)

source

pub fn unaligned_volatile_store<Bx: BuilderMethods<'a, 'tcx, Value = V>>(
    self,
    bx: &mut Bx,
    dest: PlaceRef<'tcx, V>
)

source

pub fn nontemporal_store<Bx: BuilderMethods<'a, 'tcx, Value = V>>(
    self,
    bx: &mut Bx,
    dest: PlaceRef<'tcx, V>
)

source

fn store_with_flags<Bx: BuilderMethods<'a, 'tcx, Value = V>>(
    self,
    bx: &mut Bx,
    dest: PlaceRef<'tcx, V>,
    flags: MemFlags
)

source

pub fn store_unsized<Bx: BuilderMethods<'a, 'tcx, Value = V>>(
    self,
    bx: &mut Bx,
    indirect_dest: PlaceRef<'tcx, V>
)

Trait Implementations§

source§

impl<V: Clone> Clone for OperandValue<V>

source§

fn clone(&self) -> OperandValue<V>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<V: Debug> Debug for OperandValue<V>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<V: Copy> Copy for OperandValue<V>

Auto Trait Implementations§

§

impl<V> RefUnwindSafe for OperandValue<V>where
    V: RefUnwindSafe,

§

impl<V> Send for OperandValue<V>where
    V: Send,

§

impl<V> Sync for OperandValue<V>where
    V: Sync,

§

impl<V> Unpin for OperandValue<V>where
    V: Unpin,

§

impl<V> UnwindSafe for OperandValue<V>where
    V: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere
    T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere
    U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere
    T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere
    U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere
    U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

Layout§

Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.