Module type Ezirmin.Rope_content

module type Rope_content = sig .. end


Mergeable rope contents



Rope_content provides the abtraction for contents of mergeable ropes.
type atom 
The type of the element in the content. For example, in the case of string content, the atom would be char.
include Irmin.Contents.S

Rope contents needs to be serializable
val empty : t
Empty content
val length : t -> int
Length of contents
val set : t -> int -> atom -> t
set c i v sets the element at position i to v in c. The update may be inplace.
val get : t -> int -> atom
get c i gets the element at position i in c.
val insert : t -> int -> t -> t
insert c i c' inserts the content c' at position i in c.
val delete : t -> int -> int -> t
delete c i n deletes n atoms at position i in c.
val append : t -> t -> t
append c c' returns a new content with c' appended to the end of c.
val concat : t -> t list -> t
concat sep cl returns a new content which concatenates the contents in cl separated by sep.
val split : t -> int -> t * t
split c i splits c at position i and returns a pair of contents.