pub enum Fill {
Const(i64),
Pattern {
modulus: i64,
shift: i64,
},
Overrides {
base: Box<Fill>,
sets: Vec<(usize, i64)>,
},
ConstF(u64),
FloatOverrides {
base: u64,
sets: Vec<(usize, u64)>,
},
RealPattern {
modulus: i64,
shift: i64,
divisor: u64,
},
Unknown,
}Expand description
How an array is FILLED by its build loop — recognized from While iv is less than N: Push <expr> to xs,
so a backend host can reproduce the source’s data and a numerics claim can bound the operand range.
Variants§
Const(i64)
Every element is the same constant.
Pattern
element[p] = (p % modulus) + shift over the loop counter p.
Overrides
A recognized base fill followed by constant element overrides Set item i of xs to v (0-based here).
ConstF(u64)
Every element is the same float constant (its bits, so the fill stays hashable).
FloatOverrides
A float base constant (bits) followed by float element overrides (0-based index, value bits).
RealPattern
element[p] = ((p % modulus) + shift) / divisor over the loop counter p, a Real (divisor by its bits).
Unknown
Not a recognized fill shape (data is external to the compiler).
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Fill
impl<'de> Deserialize<'de> for Fill
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Fill
impl StructuralPartialEq for Fill
Auto Trait Implementations§
impl Freeze for Fill
impl RefUnwindSafe for Fill
impl Send for Fill
impl Sync for Fill
impl Unpin for Fill
impl UnsafeUnpin for Fill
impl UnwindSafe for Fill
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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§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.