sig
type character = char
type t = Internal_pervasives.String.t
val empty : t
val is_empty : t -> bool
val make : int -> character -> t
val length : t -> int
val of_character : character -> t
val of_character_list : character list -> t
val to_character_list : t -> character list
val get : t -> index:int -> character option
val set : t -> index:int -> v:character -> t option
val get_exn : t -> index:int -> character
val set_exn : t -> index:int -> v:character -> t
val concat : ?sep:t -> t list -> t
val of_native_string : string -> (t, [> `wrong_char_at of int ]) result
val of_native_substring :
string ->
offset:int ->
length:int -> (t, [> `out_of_bounds | `wrong_char_at of int ]) result
val to_native_string : t -> string
val to_string_hum : t -> string
val fold : t -> init:'a -> f:('a -> character -> 'a) -> 'a
val foldi : t -> init:'a -> f:(int -> 'a -> character -> 'a) -> 'a
val fold2_exn :
t -> t -> init:'a -> f:('a -> character -> character -> 'a) -> 'a
val compare : t -> t -> int
val sub : t -> index:int -> length:int -> t option
val sub_exn : t -> index:int -> length:int -> t
val slice : ?start:int -> ?finish:int -> t -> t option
val slice_exn : ?start:int -> ?finish:int -> t -> t
val is_prefix : t -> prefix:t -> bool
val is_suffix : t -> suffix:t -> bool
val chop_prefix_exn : t -> prefix:t -> t
val chop_prefix : t -> prefix:t -> t option
val chop_suffix_exn : t -> suffix:t -> t
val chop_suffix : t -> suffix:t -> t option
val split_at : t -> index:int -> t * t
val take : t -> index:int -> t
val drop : t -> index:int -> t
val compare_substring : t * int * int -> t * int * int -> int
val compare_substring_strict : t * int * int -> t * int * int -> int option
val iter : t -> f:(character -> unit) -> unit
val iteri : t -> f:(int -> character -> unit) -> unit
val iter_reverse : t -> f:(character -> unit) -> unit
val rev : t -> t
val map : t -> f:(character -> character) -> t
val mapi : t -> f:(int -> character -> character) -> t
val map2_exn : t -> t -> f:(character -> character -> character) -> t
val for_all : t -> f:(character -> bool) -> bool
val exists : t -> f:(character -> bool) -> bool
val take_while : t -> f:(character -> bool) -> t
val take_while_with_index : t -> f:(int -> character -> bool) -> t
val index_of_character : t -> ?from:int -> character -> int option
val index_of_character_reverse : t -> ?from:int -> character -> int option
val index_of_string :
?from:int ->
?sub_index:int -> ?sub_length:int -> t -> sub:t -> int option
val index_of_string_reverse :
?from:int ->
?sub_index:int -> ?sub_length:int -> t -> sub:t -> int option
val find :
?from:int -> ?length:int -> t -> f:(character -> bool) -> int option
val find_reverse :
?from:int -> ?length:int -> t -> f:(character -> bool) -> int option
val filter_map :
?from:int -> ?length:int -> t -> f:(character -> character option) -> t
val filter : ?from:int -> ?length:int -> t -> f:(character -> bool) -> t
val split : t -> on:[ `Character of character | `String of t ] -> t list
val strip :
?on:[ `Both | `Left | `Right ] ->
?whitespace:(character -> bool) -> t -> t
module Make_output :
functor (Model : OUTPUT_MODEL) ->
sig
val output :
('a, 'b, 'c) Model.channel -> t -> (unit, 'e, 'f) Model.thread
end
val mutate :
Internal_pervasives.String.t ->
index:int -> char -> (unit, [> `out_of_bounds ]) result
val mutate_exn : Internal_pervasives.String.t -> index:int -> char -> unit
val blit :
src:Internal_pervasives.String.t ->
src_index:int ->
dst:Internal_pervasives.String.t ->
dst_index:int -> length:int -> (unit, [> `out_of_bounds ]) result
val blit_exn :
src:Internal_pervasives.String.t ->
src_index:int ->
dst:Internal_pervasives.String.t -> dst_index:int -> length:int -> unit
end