pub enum ComprehensionMode {
Cartesian(Vec<Clause>),
Union(Vec<Subspace>),
}Expand description
How the clauses of a comprehension combine.
See the module-level doc for the detection rule and the motivating examples.
Variants§
Cartesian(Vec<Clause>)
One ordered list of clauses; iteration emits the
cross product. Cartesian(vec![one_clause]) is the
degenerate single-variable form (for_each var in expr).
Union(Vec<Subspace>)
A list of sub-spaces. Each Subspace is one Cartesian
list of clauses; iteration emits each sub-space’s product,
concatenated in declaration order. Variable names typically
repeat across sub-spaces so children see the same binding
shape regardless of which sub-space the current tuple came
from.
Trait Implementations§
Source§impl Clone for ComprehensionMode
impl Clone for ComprehensionMode
Source§fn clone(&self) -> ComprehensionMode
fn clone(&self) -> ComprehensionMode
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 ComprehensionMode
impl Debug for ComprehensionMode
Source§impl<'de> Deserialize<'de> for ComprehensionMode
impl<'de> Deserialize<'de> for ComprehensionMode
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 ComprehensionMode
Source§impl PartialEq for ComprehensionMode
impl PartialEq for ComprehensionMode
Source§impl Serialize for ComprehensionMode
impl Serialize for ComprehensionMode
impl StructuralPartialEq for ComprehensionMode
Auto Trait Implementations§
impl Freeze for ComprehensionMode
impl RefUnwindSafe for ComprehensionMode
impl Send for ComprehensionMode
impl Sync for ComprehensionMode
impl Unpin for ComprehensionMode
impl UnsafeUnpin for ComprehensionMode
impl UnwindSafe for ComprehensionMode
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.