jon.recoil.org

Module Internals.Line_buffer

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 -> Line.Internals.Line_buffer.t

Create a line buffer with the given initial size.

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

val add_char : Line.Internals.Line_buffer.t -> char -> unit
val add_string : Line.Internals.Line_buffer.t -> string -> unit
val add_substring : Line.Internals.Line_buffer.t -> string -> off:int -> len:int -> unit
val add_line_buffer : dst:Line.Internals.Line_buffer.t -> src:Line.Internals.Line_buffer.t -> unit
val lift_write : len:int -> write:('a -> into:bytes -> pos:int -> unit) -> (Line.Internals.Line_buffer.t -> 'a -> unit) Progress_engine__.Stdlib_ext.Staged.t
val contents : Line.Internals.Line_buffer.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 : Line.Internals.Line_buffer.t -> unit
type mark

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

module Span : sig ... end

Advance over a given span in the buffer.