pub struct BlockStackLayout {
pub slots: SmallVec<[Option<ValueId>; 8]>,
}Expand description
Represents a stack layout for a block - the values that should be on the stack when entering or exiting a block, from top to bottom.
Fields§
§slots: SmallVec<[Option<ValueId>; 8]>Stack slots from top (index 0) to bottom.
None means “don’t care” / junk slot.
Implementations§
Source§impl BlockStackLayout
impl BlockStackLayout
Sourcepub fn new() -> BlockStackLayout
pub fn new() -> BlockStackLayout
Creates an empty layout.
Sourcepub fn from_values(
values: impl IntoIterator<Item = ValueId>,
) -> BlockStackLayout
pub fn from_values( values: impl IntoIterator<Item = ValueId>, ) -> BlockStackLayout
Creates a layout with the given values (first = top of stack).
Sourcepub fn from_stack_model(model: &StackModel) -> BlockStackLayout
pub fn from_stack_model(model: &StackModel) -> BlockStackLayout
Creates a layout from a StackModel.
Sourcepub fn to_target_layout(&self) -> Vec<TargetSlot>
pub fn to_target_layout(&self) -> Vec<TargetSlot>
Converts to a target layout for the shuffler.
Trait Implementations§
Source§impl Clone for BlockStackLayout
impl Clone for BlockStackLayout
Source§fn clone(&self) -> BlockStackLayout
fn clone(&self) -> BlockStackLayout
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 moreSource§impl Debug for BlockStackLayout
impl Debug for BlockStackLayout
Source§impl Default for BlockStackLayout
impl Default for BlockStackLayout
Source§fn default() -> BlockStackLayout
fn default() -> BlockStackLayout
Returns the “default value” for a type. Read more
impl Eq for BlockStackLayout
Source§impl PartialEq for BlockStackLayout
impl PartialEq for BlockStackLayout
Source§fn eq(&self, other: &BlockStackLayout) -> bool
fn eq(&self, other: &BlockStackLayout) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for BlockStackLayout
Auto Trait Implementations§
impl Freeze for BlockStackLayout
impl RefUnwindSafe for BlockStackLayout
impl Send for BlockStackLayout
impl Sync for BlockStackLayout
impl Unpin for BlockStackLayout
impl UnsafeUnpin for BlockStackLayout
impl UnwindSafe for BlockStackLayout
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,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> 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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
fn equivalent(&self, key: &K) -> bool
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> ⓘ
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