sig
type 'a gen = unit -> 'a option
type 'a sequence = ('a -> unit) -> unit
type 'a klist = unit -> [ `Cons of 'a * 'a CCString.klist | `Nil ]
module type S =
sig
type t
val length : CCString.S.t -> int
val blit : CCString.S.t -> int -> Bytes.t -> int -> int -> unit
val fold : ('a -> char -> 'a) -> 'a -> CCString.S.t -> 'a
val to_gen : CCString.S.t -> char CCString.gen
val to_seq : CCString.S.t -> char CCString.sequence
val to_klist : CCString.S.t -> char CCString.klist
val to_list : CCString.S.t -> char list
val pp : Buffer.t -> CCString.S.t -> unit
val print : Format.formatter -> CCString.S.t -> unit
end
external get : string -> int -> char = "%string_safe_get"
external create : int -> bytes = "caml_create_string"
val make : int -> char -> string
val copy : string -> string
val sub : string -> int -> int -> string
val fill : bytes -> int -> int -> char -> unit
val concat : string -> string list -> string
val trim : string -> string
val escaped : string -> string
val index : string -> char -> int
val rindex : string -> char -> int
val index_from : string -> int -> char -> int
val rindex_from : string -> int -> char -> int
val contains : string -> char -> bool
val contains_from : string -> int -> char -> bool
val rcontains_from : string -> int -> char -> bool
val uppercase : string -> string
val lowercase : string -> string
val capitalize : string -> string
val uncapitalize : string -> string
type t = string
external unsafe_get : string -> int -> char = "%string_unsafe_get"
external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
external unsafe_blit : string -> int -> bytes -> int -> int -> unit
= "caml_blit_string" [@@noalloc]
external unsafe_fill : bytes -> int -> int -> char -> unit
= "caml_fill_string" [@@noalloc]
val equal : string -> string -> bool
val compare : string -> string -> int
val hash : string -> int
val init : int -> (int -> char) -> string
val rev : string -> string
val pad : ?side:[ `Left | `Right ] -> ?c:char -> int -> string -> string
val of_char : char -> string
val of_gen : char CCString.gen -> string
val of_seq : char CCString.sequence -> string
val of_klist : char CCString.klist -> string
val of_list : char list -> string
val of_array : char array -> string
val to_array : string -> char array
val find : ?start:int -> sub:string -> string -> int
val find_all : ?start:int -> sub:string -> string -> int CCString.gen
val find_all_l : ?start:int -> sub:string -> string -> int list
val mem : ?start:int -> sub:string -> string -> bool
val rfind : sub:string -> string -> int
val replace :
?which:[ `All | `Left | `Right ] ->
sub:string -> by:string -> string -> string
val is_sub : sub:string -> int -> string -> int -> len:int -> bool
val repeat : string -> int -> string
val prefix : pre:string -> string -> bool
val suffix : suf:string -> string -> bool
val chop_prefix : pre:string -> string -> string option
val chop_suffix : suf:string -> string -> string option
val take : int -> string -> string
val drop : int -> string -> string
val take_drop : int -> string -> string * string
val lines : string -> string list
val lines_gen : string -> string CCString.gen
val concat_gen : sep:string -> string CCString.gen -> string
val unlines : string list -> string
val unlines_gen : string CCString.gen -> string
val set : string -> int -> char -> string
val iter : (char -> unit) -> string -> unit
val iteri : (int -> char -> unit) -> string -> unit
val map : (char -> char) -> string -> string
val mapi : (int -> char -> char) -> string -> string
val filter_map : (char -> char option) -> string -> string
val filter : (char -> bool) -> string -> string
val flat_map : ?sep:string -> (char -> string) -> string -> string
val for_all : (char -> bool) -> string -> bool
val exists : (char -> bool) -> string -> bool
val length : string -> int
val blit : string -> int -> Bytes.t -> int -> int -> unit
val fold : ('a -> char -> 'a) -> 'a -> string -> 'a
val to_gen : string -> char gen
val to_seq : string -> char sequence
val to_klist : string -> char klist
val to_list : string -> char list
val pp : Buffer.t -> string -> unit
val print : Format.formatter -> string -> unit
val ltrim : t -> t
val rtrim : t -> t
val map2 : (char -> char -> char) -> string -> string -> string
val iter2 : (char -> char -> unit) -> string -> string -> unit
val iteri2 : (int -> char -> char -> unit) -> string -> string -> unit
val fold2 : ('a -> char -> char -> 'a) -> 'a -> string -> string -> 'a
val for_all2 : (char -> char -> bool) -> string -> string -> bool
val exists2 : (char -> char -> bool) -> string -> string -> bool
val capitalize_ascii : string -> string
val uncapitalize_ascii : string -> string
val uppercase_ascii : string -> string
val lowercase_ascii : string -> string
val equal_caseless : string -> string -> bool
module Find :
sig
type _ pattern
val compile : string -> [ `Direct ] CCString.Find.pattern
val rcompile : string -> [ `Reverse ] CCString.Find.pattern
val find :
?start:int ->
pattern:[ `Direct ] CCString.Find.pattern -> string -> int
val rfind :
?start:int ->
pattern:[ `Reverse ] CCString.Find.pattern -> string -> int
end
module Split :
sig
val list_ : by:string -> string -> (string * int * int) list
val gen : by:string -> string -> (string * int * int) CCString.gen
val seq : by:string -> string -> (string * int * int) CCString.sequence
val klist : by:string -> string -> (string * int * int) CCString.klist
val list_cpy : by:string -> string -> string list
val gen_cpy : by:string -> string -> string CCString.gen
val seq_cpy : by:string -> string -> string CCString.sequence
val klist_cpy : by:string -> string -> string CCString.klist
val left : by:string -> string -> (string * string) option
val left_exn : by:string -> string -> string * string
val right : by:string -> string -> (string * string) option
val right_exn : by:string -> string -> string * string
end
val split_on_char : char -> string -> string list
val split : by:string -> string -> string list
val compare_versions : string -> string -> int
val compare_natural : string -> string -> int
val edit_distance : string -> string -> int
module Sub :
sig
type t = string * int * int
val make : string -> int -> len:int -> CCString.Sub.t
val full : string -> CCString.Sub.t
val copy : CCString.Sub.t -> string
val underlying : CCString.Sub.t -> string
val sub : CCString.Sub.t -> int -> int -> CCString.Sub.t
val get : CCString.Sub.t -> int -> char
val length : t -> int
val blit : t -> int -> Bytes.t -> int -> int -> unit
val fold : ('a -> char -> 'a) -> 'a -> t -> 'a
val to_gen : t -> char gen
val to_seq : t -> char sequence
val to_klist : t -> char klist
val to_list : t -> char list
val pp : Buffer.t -> t -> unit
val print : Format.formatter -> t -> unit
end
end