package progress

  1. Overview
  2. Docs
type t

A line buffer is a variant of Stdlib.Buffer that supports skipping some section of the underlying bytestring when doing a write pass.

val create : size:int -> t

Create a line buffer with the given initial size.

val with_ppf : t -> (Stdlib.Format.formatter -> 'a) -> 'a

with_ppf buf f gives a view of buf as a formatter to f (and then flushes the formatter to buf).

val add_char : t -> char -> unit
val add_string : t -> string -> unit
val add_substring : t -> string -> off:int -> len:int -> unit
val add_line_buffer : dst:t -> src:t -> unit
val lift_write : len:int -> write:('a -> into:bytes -> pos:int -> unit) -> (t -> 'a -> unit) Progress_engine__.Stdlib_ext.Staged.t
val contents : t -> [ `Clean of string | `Dirty of string ]

Reset the write head to the start of the buffer and return a copy of the intervening contents.

val reset : t -> unit
type mark
val current_position : t -> mark

Get a mark of the current write head in the buffer.

module Span : sig ... end
val skip : t -> Span.t -> unit

Advance over a given span in the buffer.