A checked port of Miri's DedupRangeMap<T> range partition.
A half-open byte interval, matching ops::Range<u64>.
Instances For
Equations
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Explicit equivalents of the source's checked-size failures and panics.
- sizeError (error : ABI.SizeError) : DedupRangeMapError
- offsetNotCovered (offset mapSize : UInt64) : DedupRangeMapError
- iterationPastMap (endOffset mapSize : UInt64) : DedupRangeMapError
- indexOutOfBounds (index length : Nat) : DedupRangeMapError
- splitOutsideSegment (index : Nat) (offset start stop : UInt64) : DedupRangeMapError
- mergeRequiresAdjacent (previousEnd nextStart : UInt64) : DedupRangeMapError
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Mutations carry state even on failure, preserving operations performed before the corresponding Rust panic.
- state : α
- outcome : Except DedupRangeMapError Unit
Instances For
Result of preparing a source iter_mut call. The map already contains the
source's start/end splits and opportunistic merges; positions identify exactly
the entries borrowed by the returned Rust iterator.
- state : DedupRangeMap α
- segments : Array (RangeMapSegment α)
- outcome : Except DedupRangeMapError Unit
Instances For
Equations
Instances For
The source reports the last interval's end, or zero for an empty map.
Equations
- map.size = match map.entries.back? with | none => Miri.ABI.Size.ZERO | some segment => Miri.ABI.Size.ofBytes segment.range.stop
Instances For
Instances For
Instances For
Read-only iteration returns complete stored segments intersecting the requested interval; edge segments are not split or clipped.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
Read a stored segment by vector position.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Replace a stored segment's value, corresponding to mutation through a returned mutable iterator reference.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Perform source iter_mut's eager start split, bounded duplicate merge
scan, and end split. The returned position list represents the mutable slice;
callers can update those entries using setAtPos.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Prepare a mutable range using value-preserving copies on splits. This is the
usual instance for value-like Lean state and is exact when the Rust Clone
implementation returns the same value. Use iterMutWithClone when a modeled
clone operation produces a different value.
Equations
- map.iterMut offset len = map.iterMutWithClone offset len id
Instances For
Apply one pure update to every segment selected by iter_mut. Splitting and
merging happen first, before the callback updates values, as in Rust.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Apply a pure update after source iter_mut splitting and merging. The
default split copy preserves the immutable Lean value.
Equations
- map.modifyRange offset len modify = map.modifyRangeWithClone offset len id modify
Instances For
Apply an update to every element without splitting or merging, matching
iter_mut_all.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Coalesce every adjacent equal run, with the same adjacency assertion as the source. On a failed assertion the vector contains only the already-built prefix.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Sorted, gapless, nonempty intervals beginning at zero.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.