pub struct SplitPointIndex {
private_use_as_methods_instead: u32 is 0..=4294967040,
}Expand description
A PointIndex with the lower bit encoding early/late inside a
statement.
This is used to model overlap constraints within a MIR statement: if a
source/destination are allowed to overlap then the source is read in
SplitPointEffect::Early and the write is done in
SplitPointEffect::Late.
Fields§
§private_use_as_methods_instead: u32 is 0..=4294967040Implementations§
Source§impl SplitPointIndex
impl SplitPointIndex
Sourcepub const MAX_AS_U32: u32 = 4294967040
pub const MAX_AS_U32: u32 = 4294967040
Maximum value the index can take, as a u32.
Sourcepub const fn from_usize(value: usize) -> Self
pub const fn from_usize(value: usize) -> Self
Sourcepub const unsafe fn from_u32_unchecked(value: u32) -> Self
pub const unsafe fn from_u32_unchecked(value: u32) -> Self
Creates a new index from a given u32.
§Safety
The provided value must be less than or equal to the maximum value for the newtype. Providing a value outside this range is undefined due to layout restrictions.
Prefer using from_u32.
Source§impl SplitPointIndex
impl SplitPointIndex
pub fn new(point: PointIndex, effect: SplitPointEffect) -> SplitPointIndex
pub fn point(self) -> PointIndex
pub fn effect(self) -> SplitPointEffect
Trait Implementations§
Source§impl Add<usize> for SplitPointIndex
impl Add<usize> for SplitPointIndex
Source§impl AddAssign<usize> for SplitPointIndex
impl AddAssign<usize> for SplitPointIndex
Source§fn add_assign(&mut self, other: usize)
fn add_assign(&mut self, other: usize)
+= operation. Read moreSource§impl Clone for SplitPointIndex
impl Clone for SplitPointIndex
impl Copy for SplitPointIndex
Source§impl Debug for SplitPointIndex
impl Debug for SplitPointIndex
impl Eq for SplitPointIndex
Source§impl From<SplitPointIndex> for u32
impl From<SplitPointIndex> for u32
Source§fn from(v: SplitPointIndex) -> u32
fn from(v: SplitPointIndex) -> u32
Source§impl From<SplitPointIndex> for usize
impl From<SplitPointIndex> for usize
Source§fn from(v: SplitPointIndex) -> usize
fn from(v: SplitPointIndex) -> usize
Source§impl From<u32> for SplitPointIndex
impl From<u32> for SplitPointIndex
Source§impl From<usize> for SplitPointIndex
impl From<usize> for SplitPointIndex
Source§impl Hash for SplitPointIndex
impl Hash for SplitPointIndex
Source§impl Idx for SplitPointIndex
impl Idx for SplitPointIndex
Source§impl Ord for SplitPointIndex
impl Ord for SplitPointIndex
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for SplitPointIndex
impl PartialEq for SplitPointIndex
Source§impl PartialOrd for SplitPointIndex
impl PartialOrd for SplitPointIndex
Source§impl Step for SplitPointIndex
impl Step for SplitPointIndex
Source§fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>)
fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>)
step_trait)start to end
like Iterator::size_hint(). Read moreSource§fn forward_checked(start: Self, u: usize) -> Option<Self>
fn forward_checked(start: Self, u: usize) -> Option<Self>
step_trait)Source§fn backward_checked(start: Self, u: usize) -> Option<Self>
fn backward_checked(start: Self, u: usize) -> Option<Self>
step_trait)Source§fn forward_overflowing(start: Self, u: usize) -> (Self, bool)
fn forward_overflowing(start: Self, u: usize) -> (Self, bool)
step_trait)self count times along with a boolean tracking whether overflow
occurred. Read moreSource§fn backward_overflowing(start: Self, u: usize) -> (Self, bool)
fn backward_overflowing(start: Self, u: usize) -> (Self, bool)
step_trait)self count times along with a boolean tracking whether overflow
occurred. Read moreSource§fn forward(start: Self, count: usize) -> Self
fn forward(start: Self, count: usize) -> Self
step_trait)Source§unsafe fn forward_unchecked(start: Self, count: usize) -> Self
unsafe fn forward_unchecked(start: Self, count: usize) -> Self
step_trait)Source§fn backward(start: Self, count: usize) -> Self
fn backward(start: Self, count: usize) -> Self
step_trait)Source§unsafe fn backward_unchecked(start: Self, count: usize) -> Self
unsafe fn backward_unchecked(start: Self, count: usize) -> Self
step_trait)impl StructuralPartialEq for SplitPointIndex
Auto Trait Implementations§
impl DynSend for SplitPointIndex
impl DynSync for SplitPointIndex
impl Freeze for SplitPointIndex
impl RefUnwindSafe for SplitPointIndex
impl Send for SplitPointIndex
impl Sync for SplitPointIndex
impl Unpin for SplitPointIndex
impl UnsafeUnpin for SplitPointIndex
impl UnwindSafe for SplitPointIndex
Blanket Implementations§
Source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut T
fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = T>, ) -> &'tcx mut [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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<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<K> IntoQueryKey<K> for K
impl<K> IntoQueryKey<K> for K
Source§fn into_query_key(self) -> K
fn into_query_key(self) -> K
Self to K.
This should always be a very cheap conversion, e.g. LocalDefId::to_def_id.Source§impl<I, T> IntoSliceIdx<I, [T]> for Iwhere
I: Idx,
impl<I, T> IntoSliceIdx<I, [T]> for Iwhere
I: Idx,
type Output = usize
fn into_slice_idx(self) -> <I as IntoSliceIdx<I, [T]>>::Output
Source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
Source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
Source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 4 bytes