package incr_map

  1. Overview
  2. Docs
module Which_range : sig ... end
type ('k, 'filter, 'order) t = {
  1. filter : 'filter;
    (*

    User-defined type, usually algebraic data type, describing how the table can be filtered. You'll need to provide equal and to_predicate of type 'filter -> ('k -> 'v -> bool) for collate.

    *)
  2. order : 'order;
    (*

    User-defined type, usually algebraic data type, describing how the table can be sorted. You'll need to provide equal and to_compare of type functionally equivalent to 'order -> ('v -> 'v -> int) for collate.

    *)
  3. key_range : 'k Which_range.t;
    (*

    Select only rows between these keys (in the configured ordering)

    *)
  4. rank_range : int Which_range.t;
    (*

    After selecting rows according to key_range, select rows between these positions.

    For example, if your (sorted & filtered) data is (A, 1); (B, 2); (C, 3), then both for key_range = All_rows; rank_range = From 1 and key_range = From B; rank_range = All_rows the result would be (B, 2); (C, 3)

    *)
}
val sexp_of_t : ('k -> Sexplib0.Sexp.t) -> ('filter -> Sexplib0.Sexp.t) -> ('order -> Sexplib0.Sexp.t) -> ('k, 'filter, 'order) t -> Sexplib0.Sexp.t
val rank_range : ('k, 'filter, 'order) t -> int Which_range.t
val key_range : ('k, 'filter, 'order) t -> 'k Which_range.t
val order : ('k, 'filter, 'order) t -> 'order
val filter : ('k, 'filter, 'order) t -> 'filter
module Fields : sig ... end
val default : filter:'filter -> order:'order -> (_, 'filter, 'order) t