pub enum IteratorSource {
String(Arc<String>),
Range {
start: i64,
end: i64,
step: i64,
},
HashMap(HashMapKindedRef),
}Expand description
Source backing a lazy iterator pipeline. Each variant holds a typed
Arc<T> over an existing collection so iteration shares the receiver’s
storage without a deep copy.
Range carries inline i64 bounds + step (no Arc payload); the
post-§2.7.4 Range-value carrier rebuild is tracked separately, so for
now Range sources are constructed by the iterator factory’s own
receiver-decode path (Range receivers themselves remain a phase-2c
surface; the field is provided in IteratorSource so the carrier is
future-proof against the §2.3 / Q8 cardinality constraints).
Variants§
String(Arc<String>)
Iteration over a string receiver (per-codepoint).
Range
Iteration over a numeric range. start is inclusive, end is
exclusive (matching 0..n Rust-shape range semantics); step
is the per-iteration increment (always positive, defaulting to 1
for start..end ranges).
HashMap(HashMapKindedRef)
Iteration over a HashMap receiver. Per-entry yields are
2-element [key, value] inner arrays, mirroring the
HashMap.entries() shape.
Wave 2 Round 3b C2-joint ckpt-2 (2026-05-14): payload flipped
from Arc<HashMapData> (non-generic) to HashMapKindedRef per
ADR-006 §2.7.24 Q25.B SUPERSEDED. Per-entry yields dispatch per-V
at iteration time via the inner HashMapKindedRef arm.
Implementations§
Trait Implementations§
Source§impl Clone for IteratorSource
impl Clone for IteratorSource
Source§fn clone(&self) -> IteratorSource
fn clone(&self) -> IteratorSource
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more