Zed_rope

`sig
type t
type rope = Zed_rope.t
exception Out_of_bounds
val empty : Zed_rope.t
val make : int -> CamomileLibrary.UChar.t -> Zed_rope.t
val init : int -> (int -> CamomileLibrary.UChar.t) -> Zed_rope.t
val rev_init : int -> (int -> CamomileLibrary.UChar.t) -> Zed_rope.t
val singleton : CamomileLibrary.UChar.t -> Zed_rope.t
val length : Zed_rope.t -> int
val is_empty : Zed_rope.t -> bool
val compare : Zed_rope.t -> Zed_rope.t -> int
val equal : Zed_rope.t -> Zed_rope.t -> bool
val of_string : string -> Zed_rope.t
val to_string : Zed_rope.t -> string
val get : Zed_rope.t -> int -> CamomileLibrary.UChar.t
val append : Zed_rope.t -> Zed_rope.t -> Zed_rope.t
val concat : Zed_rope.t -> Zed_rope.t list -> Zed_rope.t
val sub : Zed_rope.t -> int -> int -> Zed_rope.t
val break : Zed_rope.t -> int -> Zed_rope.t * Zed_rope.t
val before : Zed_rope.t -> int -> Zed_rope.t
val after : Zed_rope.t -> int -> Zed_rope.t
val insert : Zed_rope.t -> int -> Zed_rope.t -> Zed_rope.t
val remove : Zed_rope.t -> int -> int -> Zed_rope.t
val replace : Zed_rope.t -> int -> int -> Zed_rope.t -> Zed_rope.t
val lchop : Zed_rope.t -> Zed_rope.t
val rchop : Zed_rope.t -> Zed_rope.t
val iter : (CamomileLibrary.UChar.t -> unit) -> Zed_rope.t -> unit
val rev_iter : (CamomileLibrary.UChar.t -> unit) -> Zed_rope.t -> unit
val fold : (CamomileLibrary.UChar.t -> 'a -> 'a) -> Zed_rope.t -> 'a -> 'a
val rev_fold :
(CamomileLibrary.UChar.t -> 'a -> 'a) -> Zed_rope.t -> 'a -> 'a
val map :
(CamomileLibrary.UChar.t -> CamomileLibrary.UChar.t) ->
Zed_rope.t -> Zed_rope.t
val rev_map :
(CamomileLibrary.UChar.t -> CamomileLibrary.UChar.t) ->
Zed_rope.t -> Zed_rope.t
val iter_leaf : (Zed_utf8.t -> unit) -> Zed_rope.t -> unit
val rev_iter_leaf : (Zed_utf8.t -> unit) -> Zed_rope.t -> unit
val fold_leaf : (Zed_utf8.t -> 'a -> 'a) -> Zed_rope.t -> 'a -> 'a
val rev_fold_leaf : (Zed_utf8.t -> 'a -> 'a) -> Zed_rope.t -> 'a -> 'a
module Zip :
sig
type t
val make_f : Zed_rope.rope -> int -> Zed_rope.Zip.t
val make_b : Zed_rope.rope -> int -> Zed_rope.Zip.t
val offset : Zed_rope.Zip.t -> int
val next : Zed_rope.Zip.t -> CamomileLibrary.UChar.t * Zed_rope.Zip.t
val prev : Zed_rope.Zip.t -> CamomileLibrary.UChar.t * Zed_rope.Zip.t
val move : int -> Zed_rope.Zip.t -> Zed_rope.Zip.t
val at_bos : Zed_rope.Zip.t -> bool
val at_eos : Zed_rope.Zip.t -> bool
val find_f :
(CamomileLibrary.UChar.t -> bool) -> Zed_rope.Zip.t -> Zed_rope.Zip.t
val find_b :
(CamomileLibrary.UChar.t -> bool) -> Zed_rope.Zip.t -> Zed_rope.Zip.t
val sub : Zed_rope.Zip.t -> int -> Zed_rope.rope
val slice : Zed_rope.Zip.t -> Zed_rope.Zip.t -> Zed_rope.rope
end
module Buffer :
sig
type t
val create : unit -> Zed_rope.Buffer.t
val add : Zed_rope.Buffer.t -> CamomileLibrary.UChar.t -> unit
val contents : Zed_rope.Buffer.t -> Zed_rope.rope
val reset : Zed_rope.Buffer.t -> unit
end
module Text :
sig
type t = rope
val get : t -> int -> CamomileLibrary.UChar.t
val init : int -> (int -> CamomileLibrary.UChar.t) -> t
val length : t -> int
type index = Zip.t
val look : t -> index -> CamomileLibrary.UChar.t
val nth : t -> int -> index
val next : t -> index -> index
val prev : t -> index -> index
val out_of_range : t -> index -> bool
val iter : (CamomileLibrary.UChar.t -> unit) -> t -> unit
val compare : t -> t -> int
val first : t -> index
val last : t -> index
val move : t -> index -> int -> index
val compare_index : t -> index -> index -> int
module Buf :
sig
type buf
val create : int -> buf
val contents : buf -> t
val clear : buf -> unit
val reset : buf -> unit
val add_char : buf -> CamomileLibrary.UChar.t -> unit
val add_string : buf -> t -> unit
val add_buffer : buf -> buf -> unit
end
end
end`