Module Tr_offset

module Tr_offset: sig .. end
Reduction of a location (expressed as an Ival.t and a size) by a base validity. Only the locations in the trimmed result are valid.

type t = private 
| Invalid (*
No location is valid
*)
| Set of Integer.t list (*
Limited number of locations
*)
| Interval of Integer.t * Integer.t * Integer.t
| Overlap of Integer.t * Integer.t * Origin.t (*
The location covers the entire range min..max, but consecutive offsets overlap
*)
val trim_by_validity : ?origin:Origin.t ->
Ival.t -> Integer.t -> Base.validity -> bool * t
trim_by_validity ?origin offsets size validity reduces offsets so that all accesses to offsets+(0..size-1) are valid according to validity. The returned boolean indicates that at least one of the offsets does not comply with validity. If the valid offsets cannot be represented precisely, the Imprecise constructor is returned. When specified, the origin argument is used as the source of this imprecision .