Module Make.MultiSource

type 'a reporter := 'a -> unit
Sourcetype ('a, 'b) t

The type of vertical sequences of progress bars. The parameter 'a stores a list of the reporting functions associated with each bar, terminating with 'b. For example:

  (* Single progress bar, taking a [float] value. *)
  (float reporter -> 'b, 'b) t

  (* A two-bar layout, where the top bar takes [int64]s and the bottom one
     takes [string * float] pairs. *)
  (int64 reporter -> (string * float) reporter -> 'b, 'b) t

These reporting functions are supplied when beginning the rendering process.

Sourceval line : 'a Line.t -> ('a reporter -> 'b, 'b) t

Construct a multiple-line layout from a single progress bar line.

Sourceval lines : 'a Line.t list -> ('a reporter list -> 'b, 'b) t

Construct a multiple-line layout from a sequence of lines that all have the same type of reported values.

Sourceval (++) : ('a, 'b) t -> ('b, 'c) t -> ('a, 'c) t

Stack progress bars vertically. a ++ b is a set with a stacked on top of b. The two sections have separate reporting functions, passed consecutively to the with_reporters continuation when rendering.

Sourceval blank : ('a, 'a) t

A blank line, for adding spacing between progress lines.