Module TzPervasives.String

include module type of Stdlib.String
type t = string
val make : int -> char -> string
val init : int -> (int -> char) -> string
val empty : string
val of_bytes : bytes -> string
val to_bytes : string -> bytes
val length : string -> int
val get : string -> int -> char
val concat : string -> string list -> string
val cat : string -> string -> string
val equal : t -> t -> bool
val compare : t -> t -> int
val starts_with : prefix:string -> string -> bool
val ends_with : suffix:string -> string -> bool
val contains_from : string -> int -> char -> bool
val rcontains_from : string -> int -> char -> bool
val contains : string -> char -> bool
val sub : string -> int -> int -> string
val split_on_char : char -> string -> string list
val map : (char -> char) -> string -> string
val mapi : (int -> char -> char) -> string -> string
val fold_right : (char -> 'a -> 'a) -> string -> 'a -> 'a
val for_all : (char -> bool) -> string -> bool
val exists : (char -> bool) -> string -> bool
val trim : string -> string
val escaped : string -> string
val uppercase_ascii : string -> string
val lowercase_ascii : string -> string
val capitalize_ascii : string -> string
val uncapitalize_ascii : string -> string
val iter : (char -> unit) -> string -> unit
val iteri : (int -> char -> unit) -> string -> unit
val index_from : string -> int -> char -> int
val index_from_opt : string -> int -> char -> int option
val rindex_from : string -> int -> char -> int
val rindex_from_opt : string -> int -> char -> int option
val index : string -> char -> int
val index_opt : string -> char -> int option
val rindex : string -> char -> int
val rindex_opt : string -> char -> int option
val to_seq : t -> char Stdlib.Seq.t
val to_seqi : t -> (int * char) Stdlib.Seq.t
val of_seq : char Stdlib.Seq.t -> t
val get_utf_8_uchar : t -> int -> Stdlib.Uchar.utf_decode
val is_valid_utf_8 : t -> bool
val get_utf_16be_uchar : t -> int -> Stdlib.Uchar.utf_decode
val is_valid_utf_16be : t -> bool
val get_utf_16le_uchar : t -> int -> Stdlib.Uchar.utf_decode
val is_valid_utf_16le : t -> bool
val create : int -> bytes
  • deprecated Use Bytes.create/BytesLabels.create instead.
val set : bytes -> int -> char -> unit
  • deprecated Use Bytes.set/BytesLabels.set instead.
val blit : string -> int -> bytes -> int -> int -> unit
val copy : string -> string
  • deprecated Strings now immutable: no need to copy
val fill : bytes -> int -> int -> char -> unit
  • deprecated Use Bytes.fill/BytesLabels.fill instead.
val uppercase : string -> string
  • deprecated Use String.uppercase_ascii/StringLabels.uppercase_ascii instead.
val lowercase : string -> string
  • deprecated Use String.lowercase_ascii/StringLabels.lowercase_ascii instead.
val capitalize : string -> string
  • deprecated Use String.capitalize_ascii/StringLabels.capitalize_ascii instead.
val uncapitalize : string -> string
  • deprecated Use String.uncapitalize_ascii/StringLabels.uncapitalize_ascii instead.
val get_uint8 : string -> int -> int
val get_int8 : string -> int -> int
val get_uint16_ne : string -> int -> int
val get_uint16_be : string -> int -> int
val get_uint16_le : string -> int -> int
val get_int16_ne : string -> int -> int
val get_int16_be : string -> int -> int
val get_int16_le : string -> int -> int
val get_int32_ne : string -> int -> int32
val get_int32_be : string -> int -> int32
val get_int32_le : string -> int -> int32
val get_int64_ne : string -> int -> int64
val get_int64_be : string -> int -> int64
val get_int64_le : string -> int -> int64
val unsafe_get : string -> int -> char
val unsafe_set : bytes -> int -> char -> unit
  • deprecated
val unsafe_blit : string -> int -> bytes -> int -> int -> unit
val unsafe_fill : bytes -> int -> int -> char -> unit
  • deprecated
include module type of Mavryk_stdlib.TzString
val split : char -> ?limit:int -> string -> string list

split delim ~limit str splits str into a list of strings. Splitting occurs on delim characters (which are removed from output) at most limit times. Remaining delim characters are included in the last element of the resulting list.

limit defaults to max_int.

This function obeys the invariant that for all limits, delims and strs: String.concat (String.init 1 (fun _ -> delim)) (split delim ~limit str) = str.

val split_no_empty : char -> ?limit:int -> string -> string list

Splits a string on a delimiter character. It strips delimiters at the beginning and at the end. It considers groups of delimiters as one. If limit is passed, stops after limit split(s). limit defaults to max_int. It's guaranteed to never produce empty strings in the output. Therefore, it's capable of producing an empty list as a result.

For example, split_no_empty ',' ",hello,,world," returns "hello"; "world"

val chunk_bytes : ?error_on_partial_chunk:'a -> int -> bytes -> (string list, 'a) Stdlib.result

chunk_bytes n b chunks the sequence of bytes b into a list of strings, each of length n. The last chunk may be a non-empty string of length less than n, in which case the behaviour of the function depends on whether error_on_partial_chunk is set:

  • If error_on_partial_chunk is set, then the function returns Error error_on_partial_chunk,
  • Otherwise, the function return the list of chunks, where the last chunk is a non-empty string of length less than n.
  • raises Invalid_argument

    if n <= 0.

val has_prefix : prefix:string -> string -> bool

true if input has prefix

val remove_prefix : prefix:string -> string -> string option

Some (input with prefix removed), if string has prefix, else None

val remove_suffix : suffix:string -> string -> string option

Some (input with suffix removed), if string has suffix, else None

val common_prefix : string -> string -> int

Length of common prefix of input strings

val mem_char : string -> char -> bool

Test whether a string contains a given character

val fold_left : ('a -> char -> 'a) -> 'a -> string -> 'a

Functional iteration over the characters of a string from first to last

val pp_bytes_hex : Stdlib.Format.formatter -> bytes -> unit

Pretty print bytes as hexadecimal string.