package progress
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=7f87f0597363928c45ba859ae5a1430f6aa3c29e251ff1a53cf786ed0e045961
sha512=45dee4fe2ae0b7fc3ca675f6e854d738873eb608ef9155ea5d7edac4639c183ae1f512847a1b43bdfc1f4c459e7d5b44d03ee809455797e680f890b33d531367
doc/progress.engine/Progress_engine/Make/Line/Using_int63/index.html
Module Line.Using_int63Source
Basic line segments
Like const, but takes a format string and corresponding arguments. constf "..." a b c ... is equivalent to const (Format.asprintf "..." a b c ...), except that colours added with Fmt.styled are not discarded.
lpad n t left-pads the segment t to size n by adding blank space at the start.
rpad n t right-pads the segment t to size n by adding blank space at the end.
of_printer p is a segment that renders the latest reported value using printer p. See sum for a variant that reports accumulated values instead.
Counting segments
These segments all consume integer values and display the accumulated total of reported values in some way. The top-level Line segments are specialised to int values; see "Alternative integer types" for variants supporting int32, int64 etc.
val count_to :
?pp:Optint.Int63.t Printer.t ->
?sep:unit t ->
Optint.Int63.t ->
Optint.Int63.t tcount_to target renders both the current running total of reported values and the fixed value target, separated by the the given separator, i.e. 42/100. sep defaults to const "/".
Prints the running total as a number of bytes, using ISO/IEC binary prefixes (e.g. 10.4 MiB). See also bytes_per_sec.
percentage_of target renders the running total as a percentage of target, i.e. 42%. Values outside the range [0, 100] will be clamped to either 0 or 100.
sum ~width () displays a running total of reported values using width-many terminal columns. If passed, pp overrides the printer used for rendering the count.
Graphical segments
val bar :
?style:[ `ASCII | `UTF8 | `Custom of Bar_style.t ] ->
?color:Color.t ->
?width:[ `Fixed of int | `Expand ] ->
?data:[ `Sum | `Latest ] ->
Optint.Int63.t ->
Optint.Int63.t tbar total is a progress bar of the form: [#################...............]
The proportion of the bar that is filled is given by <reported_so_far> / total. Optional parameters are as follows:
?stylespecifies whether to use a UTF-8 or an ASCII encoding for the progress bar. The UTF-8 encoding shows a higher resolution of progress, but may not be supported in all terminals. The default is`ASCII.
?colorcauses the filled portion of the bar to be rendered with the given colour. (Equivalent to setting the colour withBar_style.with_color.)
?widthis the width of the bar in columns. Defaults to`Expand, which causes the bar to occupy the remaining rendering space after accounting for other line segments on the same line.
?datachanges the metric that is indicated by the progress bar.`Sum(the default) causes the progress bar to correspond to the running total of values reported so far.`Latestcauses each reported value to overwrite the previous one instead.
val spinner :
?frames:string list ->
?color:Color.t ->
?min_interval:Duration.t option ->
unit ->
_ tspinner () is a small segment that cycles over a fixed number of frames each time a value is reported. e.g.
⠋ → ⠙ → ⠹ → ⠸ → ⠼ → ⠴ → ⠦ → ⠧ → ⠇ → ⠏ → ...Optional prameters are as follows:
?framesalters the sequence of frames rendered by the spinner;?colorcauses each frame to be rendered with the given colour;?min_intervalis the minimum time interval between frame transitions of the spinner (i.e. a debounce threshold). The default isSome 80ms.
Time-sensitive segments
bytes_per_sec renders the rate of change of the running total as a number of bytes per second, using ISO/IEC binary prefixes (e.g. 10.4 MiB/s).
Displays the time for which the bar has been rendering in MM:SS form.
Displays an estimate of the remaining time until total is accumulated by the reporters, in MM:SS form.
rate pp is an integer segment that uses pp to print the rate of reported values per second. (For instance, bytes_per_sec is rate Units.Bytes.of_float.)
Combining segments
Horizontally join two segments of the same reported value type.
Horizontally join a list of segments, with a given separator. sep defaults to const " ".
Horizontally join a pair of segments consuming different reported values into a single segment that consumes a pair.
using f s is a segment that first applies f to the reported value and then behaves as segment s.
Utilities
The following line segments are definable in terms of the others, but provided for convenience:
A zero-width line segment that does nothing. This segment will not be surrounded with separators when used in a list, making it a useful "off" state for conditionally-enabled segments.
ticker_to total is using ~f:(fun _ -> 1) (counter_to total). i.e. it renders the total number of reported values of some arbitrary type.