Struct rustc_middle::ty::consts::int::ScalarInt[][src]

#[repr(packed)]
pub struct ScalarInt { data: u128, size: u8, }

The raw bytes of a simple value.

This is a packed struct in order to allow this type to be optimally embedded in enums (like Scalar).

Fields

data: u128

The first size bytes of data are the value. Do not try to read less or more bytes than that. The remaining bytes must be 0.

size: u8

Implementations

impl ScalarInt[src]

pub const TRUE: ScalarInt[src]

pub const FALSE: ScalarInt[src]

pub const ZST: ScalarInt[src]

pub fn size(self) -> Size[src]

fn check_data(self)[src]

Make sure the data fits in size. This is guaranteed by all constructors here, but having had this check saved us from bugs many times in the past, so keeping it around is definitely worth it.

pub fn null(size: Size) -> Self[src]

pub fn is_null(self) -> bool[src]

pub(crate) fn ptr_sized_op<E>(
    self,
    dl: &TargetDataLayout,
    f_int: impl FnOnce(u64) -> Result<u64, E>
) -> Result<Self, E>
[src]

pub fn try_from_uint(i: impl Into<u128>, size: Size) -> Option<Self>[src]

pub fn try_from_int(i: impl Into<i128>, size: Size) -> Option<Self>[src]

pub fn assert_bits(self, target_size: Size) -> u128[src]

pub fn to_bits(self, target_size: Size) -> Result<u128, Size>[src]

pub fn try_to_machine_usize<'tcx>(&self, tcx: TyCtxt<'tcx>) -> Result<u64, Size>[src]

Trait Implementations

impl Clone for ScalarInt[src]

fn clone(&self) -> ScalarInt[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for ScalarInt[src]

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

Formats the value using the given formatter. Read more

impl<D: Decoder> Decodable<D> for ScalarInt[src]

impl<S: Encoder> Encodable<S> for ScalarInt[src]

fn encode(&self, s: &mut S) -> Result<(), S::Error>[src]

impl From<IeeeFloat<DoubleS>> for ScalarInt[src]

fn from(f: Double) -> Self[src]

Performs the conversion.

impl From<IeeeFloat<SingleS>> for ScalarInt[src]

fn from(f: Single) -> Self[src]

Performs the conversion.

impl<Tag> From<ScalarInt> for Scalar<Tag>[src]

fn from(ptr: ScalarInt) -> Self[src]

Performs the conversion.

impl From<bool> for ScalarInt[src]

fn from(u: bool) -> Self[src]

Performs the conversion.

impl From<char> for ScalarInt[src]

fn from(c: char) -> Self[src]

Performs the conversion.

impl From<u128> for ScalarInt[src]

fn from(u: u128) -> Self[src]

Performs the conversion.

impl From<u16> for ScalarInt[src]

fn from(u: u16) -> Self[src]

Performs the conversion.

impl From<u32> for ScalarInt[src]

fn from(u: u32) -> Self[src]

Performs the conversion.

impl From<u64> for ScalarInt[src]

fn from(u: u64) -> Self[src]

Performs the conversion.

impl From<u8> for ScalarInt[src]

fn from(u: u8) -> Self[src]

Performs the conversion.

impl Hash for ScalarInt[src]

fn hash<__H: Hasher>(&self, state: &mut __H)[src]

Feeds this value into the given Hasher. Read more

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

Feeds a slice of this type into the given Hasher. Read more

impl<CTX> HashStable<CTX> for ScalarInt[src]

fn hash_stable(&self, hcx: &mut CTX, hasher: &mut StableHasher)[src]

impl LowerHex for ScalarInt[src]

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

Formats the value using the given formatter.

impl Ord for ScalarInt[src]

fn cmp(&self, other: &ScalarInt) -> Ordering[src]

This method returns an Ordering between self and other. Read more

#[must_use]
fn max(self, other: Self) -> Self
1.21.0[src]

Compares and returns the maximum of two values. Read more

#[must_use]
fn min(self, other: Self) -> Self
1.21.0[src]

Compares and returns the minimum of two values. Read more

#[must_use]
fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]

Restrict a value to a certain interval. Read more

impl PartialEq<ScalarInt> for ScalarInt[src]

fn eq(&self, other: &ScalarInt) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &ScalarInt) -> bool[src]

This method tests for !=.

impl PartialOrd<ScalarInt> for ScalarInt[src]

fn partial_cmp(&self, other: &ScalarInt) -> Option<Ordering>[src]

This method returns an ordering between self and other values if one exists. Read more

#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than (for self and other) and is used by the < operator. Read more

#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl UpperHex for ScalarInt[src]

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

Formats the value using the given formatter.

impl Copy for ScalarInt[src]

impl Eq for ScalarInt[src]

impl StructuralEq for ScalarInt[src]

impl StructuralPartialEq for ScalarInt[src]

Auto Trait Implementations

impl RefUnwindSafe for ScalarInt

impl Send for ScalarInt

impl Sync for ScalarInt

impl Unpin for ScalarInt

impl UnwindSafe for ScalarInt

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<'tcx, T> ArenaAllocatable<'tcx, ()> for T where
    T: Copy
[src]

pub fn allocate_on(Self, &'a Arena<'tcx>) -> &'a mut T[src]

pub fn allocate_from_iter(
    &'a Arena<'tcx>,
    impl IntoIterator<Item = T>
) -> &'a mut [T]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<Ctxt, T> DepNodeParams<Ctxt> for T where
    T: HashStable<<Ctxt as DepContext>::StableHashingContext> + Debug,
    Ctxt: DepContext
[src]

pub default fn can_reconstruct_query_key() -> bool[src]

pub default fn to_fingerprint(&self, tcx: Ctxt) -> Fingerprint[src]

This method turns the parameters of a DepNodeConstructor into an opaque Fingerprint to be used in DepNode. Not all DepNodeParams support being turned into a Fingerprint (they don’t need to if the corresponding DepNode is anonymous). Read more

pub default fn to_debug_str(&self, Ctxt) -> String[src]

pub default fn recover(
    Ctxt,
    &DepNode<<Ctxt as DepContext>::DepKind>
) -> Option<T>
[src]

This method tries to recover the query key from the given DepNode, something which is needed when forcing DepNodes during red-green evaluation. The query system will only call this method if can_reconstruct_query_key() is true. It is always valid to return None here, in which case incremental compilation will treat the query as having changed instead of forcing it. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> MaybeResult<T> for T[src]

type Error = !

pub fn from(Result<T, <T as MaybeResult<T>>::Error>) -> T[src]

pub fn to_result(self) -> Result<T, <T as MaybeResult<T>>::Error>[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T> WithConstness for T[src]

fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]

fn with_const(self) -> ConstnessAnd<Self>[src]

fn without_const(self) -> ConstnessAnd<Self>[src]

impl<'a, T> Captures<'a> for T where
    T: ?Sized
[src]