Vinyl
    Preparing search index...

    Interface ReadonlyRanges

    Query utilities for a list of ranges. Ranges are expected to be start, end pairs where no two ranges overlap or touch. All ranges are in incremental order.

    interface ReadonlyRanges {
        empty: boolean;
        ranges: ArrayLike<Range>;
        "[iterator]"(): IterableIterator<Range>;
        getRangeAt(value: number, tolerance?: number): null | Range;
        getRangeContaining(
            from: number,
            to: number,
            tolerance?: number,
        ): null | Range;
        getRangesWithin(from: number, to: number, tolerance?: number): Range[];
    }

    Hierarchy

    • Iterable<Range>
      • ReadonlyRanges

    Implemented by

    Index

    Properties

    empty: boolean

    Returns true if there are zero ranges.

    ranges: ArrayLike<Range>

    The ranges array like this reader encapsulates. Ranges are [start, end] tuples, they will always be ordered, never touch, and never overlap.

    Methods

    • Returns IterableIterator<Range>

    • Returns the range at the given value, or null if all ranges are outside the given tolerance. Range values are considered inclusive. That is, a ReadonlyRanges with [0, 1] will return [0, 1] for value 1.

      Parameters

      • value: number

        The value to compare to current ranges.

      • Optionaltolerance: number

        The tolerance the value may be outside a range and still considered to be within. Default: 0

      Returns null | Range

    • Returns the range that includes the entire from-to span, within a given tolerance.

      Range values are considered inclusive. That is, a ReadonlyRanges with [0, 2] will return [0, 2] for getRangeContaining(2, 2) or getRangeContaining(0, 0).

      from does not need to be lesser than to.

      Parameters

      • from: number
      • to: number
      • Optionaltolerance: number

      Returns null | Range

    • Returns all ranges where at least part of the range is within the given from-to span.

      from does not need to be lesser than to.

      Parameters

      • from: number
      • to: number
      • Optionaltolerance: number

      Returns Range[]