combine(ranges)
Signature: ranges:seq<Ranges<'T>> -> Ranges<'T>
Type parameters: 'T
|
Combine ranges - the arguments don't have to be sorted, but must not overlap
(they can be aligned, in which case ranges are merged)
|
create ops ranges
Signature: ops:IRangeKeyOperations<'T> -> ranges:seq<'T * 'T> -> Ranges<'T>
Type parameters: 'T
|
Create a range from a sequence of low-high pairs
and an explicitly specified range key operations
|
inlineCreate succ ranges
Signature: succ:(^T -> int64 -> ^T) -> ranges:seq<^T * ^T> -> Ranges<^T>
Type parameters: ^T
|
Create a range from a sequence of low-high pairs
(range key operations used standard arithmetic)
|
invalid
Signature: int64
|
Represents invalid offset
|
keyAtOffset offs ranges
Signature: offs:int64 -> ranges:Ranges<'T> -> 'T
Type parameters: 'T
|
Returns the key at a given offset. For example, given
ranges [10..12; 30..32], the function defines a mapping:
0->10, 1->11, 2->12, 3->30, 4->31, 5->32
When the offset is wrong, throws IndexOutOfRangeException
|
keyRange(ranges)
Signature: ranges:Ranges<'T> -> 'T * 'T
Type parameters: 'T
|
Returns the smallest & greatest overall key
|
keys(ranges)
Signature: ranges:Ranges<'T> -> seq<'T>
Type parameters: 'T
|
Returns a lazy sequence containing all keys
|
length(ranges)
Signature: ranges:Ranges<'T> -> int64
Type parameters: 'T
|
Returns the length of the ranges
|
lookup key semantics check ranges
Signature: key:'T -> semantics:Lookup -> check:('T -> int64 -> bool) -> ranges:Ranges<'T> -> OptionalValue<'T * int64>
Type parameters: 'T
|
Implements a lookup using the specified semantics & check function.
For Exact match, this is the same as offsetOfKey . In other cases,
we first find the place where the key would be and then scan in one
or the other direction until 'check' returns 'true' or we find the end.
Returns the key together with its offset in the range.
|
offsetOfKey key ranges
Signature: key:'T -> ranges:Ranges<'T> -> int64
Type parameters: 'T
|
Returns the offset of a given key. For example, given
ranges [10..12; 30..32], the function defines a mapping:
10->0, 11->1, 12->2, 30->3, 31->4, 32->5
When the key is wrong, returns Ranges.invalid
|
restrictRanges restriction ranges
Signature: restriction:RangeRestriction<'T> -> ranges:Ranges<'T> -> Ranges<'T>
Type parameters: 'T
|
Restricts the ranges according to the specified range restriction
|