pub enum InferredType {
Scalar(Dimension),
Bool,
Int,
Fin(NatLinearForm),
Datetime(TimeScale),
NamedIndex(InferredIndex),
Struct(InferredStructType, Vec<Self>),
Indexed {
element: Box<Self>,
index: InferredIndex,
},
}Expand description
The inferred type of an expression.
Variants§
Scalar(Dimension)
Bool
Int
Fin(NatLinearForm)
A bounded natural number Fin(N): the type of loop variables over range(N).
A value of type Fin(N) satisfies 0 <= value < N. This enables compile-time
bounds checking: v[i] is valid when i : Fin(N) and v : T[M] with N <= M.
Fin(N) is not a user-declarable type — it only arises as the type of loop
variables in for i: range(N) { ... }.
Datetime(TimeScale)
A datetime instant in a specific time scale.
NamedIndex(InferredIndex)
A named index identity in an index-only position.
This is used for named-index loop variables and Index generic
arguments. It is intentionally not a Graphcal value type.
Struct(InferredStructType, Vec<Self>)
A struct type, optionally with concrete type arguments for generic structs.
Indexed
Implementations§
Source§impl InferredType
impl InferredType
Sourcepub const fn is_int_like(&self) -> bool
pub const fn is_int_like(&self) -> bool
Returns true if this type is Int or Fin(N) (integer-like).
Trait Implementations§
Source§impl Clone for InferredType
impl Clone for InferredType
Source§fn clone(&self) -> InferredType
fn clone(&self) -> InferredType
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 InferredType
impl Debug for InferredType
impl Eq for InferredType
Source§impl From<&DeclaredType> for InferredType
impl From<&DeclaredType> for InferredType
Source§fn from(dt: &DeclaredType) -> Self
fn from(dt: &DeclaredType) -> Self
Converts to this type from the input type.
Source§impl From<&InferredType> for DeclaredType
impl From<&InferredType> for DeclaredType
Source§fn from(it: &InferredType) -> Self
fn from(it: &InferredType) -> Self
Converts to this type from the input type.
Source§impl PartialEq for InferredType
impl PartialEq for InferredType
Source§fn eq(&self, other: &InferredType) -> bool
fn eq(&self, other: &InferredType) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for InferredType
Auto Trait Implementations§
impl Freeze for InferredType
impl RefUnwindSafe for InferredType
impl Send for InferredType
impl Sync for InferredType
impl Unpin for InferredType
impl UnsafeUnpin for InferredType
impl UnwindSafe for InferredType
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<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.