package regular

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Extension of the standard bytes module.

We enhanced OCaml standard Bytes module with the expected set of functions. Bytes are not Regular, as Regular interface itself refers to bytes. However it includes a pretty big subset of regular (excluding Data module, but bytes indeed do not need any specific support for the serialization).

include sig ... end
include Core_kernel.Std.Container.S0 with type t := t with type elt := char
val mem : t -> char -> bool

Checks whether the provided element is there, using equality on elts.

val is_empty : t -> bool
val iter : t -> f:(char -> unit) -> unit

iter must allow exceptions raised in f to escape, terminating the iteration cleanly. The same holds for all functions below taking an f.

val fold : t -> init:'accum -> f:('accum -> char -> 'accum) -> 'accum

fold t ~init ~f returns f (... f (f (f init e1) e2) e3 ...) en, where e1..en are the elements of t

val fold_result : t -> init:'accum -> f:('accum -> char -> ('accum, 'e) Base.Result.t) -> ('accum, 'e) Base.Result.t

fold_result t ~init ~f is a short-circuiting version of fold that runs in the Result monad. If f returns an Error _, that value is returned without any additional invocations of f.

val fold_until : t -> init:'accum -> f:('accum -> char -> ('accum, 'stop) Base.Container_intf.Continue_or_stop.t) -> ('accum, 'stop) Base.Container_intf.Finished_or_stopped_early.t

fold_until t ~init ~f is a short-circuiting version of fold. If f returns Stop _ the computation ceases and results in that value. If f returns Continue _, the fold will proceed.

val exists : t -> f:(char -> bool) -> bool

Returns true if and only if there exists an element for which the provided function evaluates to true. This is a short-circuiting operation.

val for_all : t -> f:(char -> bool) -> bool

Returns true if and only if the provided function evaluates to true for all elements. This is a short-circuiting operation.

val count : t -> f:(char -> bool) -> int

Returns the number of elements for which the provided function evaluates to true.

val sum : (module Base.Commutative_group.S with type t = 'sum) -> t -> f:(char -> 'sum) -> 'sum

Returns the sum of f i for i in the container

val find : t -> f:(char -> bool) -> char option

Returns as an option the first element for which f evaluates to true.

val find_map : t -> f:(char -> 'a option) -> 'a option

Returns the first evaluation of f that returns Some, and returns None if there is no such element.

val to_list : t -> char list
val to_array : t -> char array
val min_elt : t -> cmp:(char -> char -> int) -> char option

Returns a min (resp max) element from the collection using the provided cmp function. In case of a tie, the first element encountered while traversing the collection is returned. The implementation uses fold so it has the same complexity as fold. Returns None iff the collection is empty.

val max_elt : t -> cmp:(char -> char -> int) -> char option
include Core_kernel.Std.Blit.S with type t := t
val blit : (t, t) Base.Blit_intf.blit
val blito : (t, t) Base.Blit_intf.blito
val unsafe_blit : (t, t) Base.Blit_intf.blit
val sub : (t, t) Base.Blit_intf.sub
val subo : (t, t) Base.Blit_intf.subo
include Core_kernel.Std.Identifiable.S with type t := t
include sig ... end
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (Base.Int.t -> t) Bin_prot.Read.reader
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_shape_t : Bin_prot.Shape.t
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
include Base.Stringable.S with type t := t
include Core_kernel.Comparable.S_binable with type t := t
include Base.Comparable_intf.S with type t := t
include Base.Comparable_intf.Polymorphic_compare with type t := t
include Base.Polymorphic_compare_intf.Infix with type t := t
val (>=) : t -> t -> bool
val (<=) : t -> t -> bool
val (=) : t -> t -> bool
val (>) : t -> t -> bool
val (<) : t -> t -> bool
val (<>) : t -> t -> bool
val equal : t -> t -> bool
val compare : t -> t -> int

-1 means "less than", 0 means "equal", 1 means "greater than", and other values should not be returned

val min : t -> t -> t
val max : t -> t -> t
val ascending : t -> t -> int

ascending is identical to compare. descending x y = ascending y x. These are intended to be mnemonic when used like List.sort ~cmp:ascending and List.sort ~cmp:descending, since they cause the list to be sorted in ascending or descending order, respectively.

val descending : t -> t -> int
val between : t -> low:t -> high:t -> bool
val clamp_exn : t -> min:t -> max:t -> t

clamp_exn t ~min ~max returns t', the closest value to t such that between t' ~low:min ~high:max is true.

Raises if not (min <= max).

val clamp : t -> min:t -> max:t -> t Base.Or_error.t
include Base.Comparator.S with type t := t
type comparator_witness
include Base.Comparable_intf.Validate with type t := t
val validate_lbound : min:t Base.Maybe_bound.t -> t Base.Validate.check
val validate_ubound : max:t Base.Maybe_bound.t -> t Base.Validate.check
val validate_bound : min:t Base.Maybe_bound.t -> max:t Base.Maybe_bound.t -> t Base.Validate.check
include Base.Pretty_printer.S with type t := t
val pp : Caml.Format.formatter -> t -> unit
module To_string : Core_kernel.Std.Blit.S_distinct with type src := t with type dst := string
module From_string : Core_kernel.Std.Blit.S_distinct with type src := string with type dst := t
val create : int -> t

create n returns a new byte sequence of length n. The sequence is uninitialized and contains arbitrary bytes. Raise Invalid_argument if n < 0 or n > Sys.max_string_length.

val make : int -> char -> t

make n c returns a new byte sequence of length n, filled with the byte c. Raise Invalid_argument if n < 0 or n > Sys.max_string_length.

val init : int -> f:(int -> char) -> t

init n ~f returns a fresh byte sequence of length n, with character i initialized to the result of f i (in increasing index order). Raise Invalid_argument if n < 0 or n > Sys.max_string_length.

val empty : t

empty a byte sequence of size 0.

val length : t -> int

length t returns the length (number of bytes) of t.

val get : t -> int -> char

get s n returns the byte at index n in s. Raise Invalid_argument if n not a valid index in s.

val set : t -> int -> char -> unit

set s n c modifies s in place, replacing the byte at index n with c. Raise Invalid_argument if n is not a valid index in s.

val copy : t -> t

copy t returns a new byte sequence that contains the same bytes as t.

val of_string : string -> t

of_string s returns a new byte sequence that contains the same bytes as the given string.

val to_string : t -> string

to_string t returns a new string that contains the same bytes as the given byte sequence.

val extend : t -> int -> int -> t

extend s left right returns a new byte sequence that contains the bytes of s, with left uninitialized bytes prepended and right uninitialized bytes appended to it. If left or right is negative, then bytes are removed (instead of appended) from the corresponding side of s. Raise Invalid_argument if the result length is negative or longer than Sys.max_string_length bytes.

val fill : t -> int -> int -> char -> unit

fill s start len c modifies s in place, replacing len characters with c, starting at start. Raise Invalid_argument if start and len do not designate a valid range of s.

val concat : t -> t list -> t

concat sep sl concatenates the list of byte sequences sl, inserting the separator byte sequence sep between each, and returns the result as a new byte sequence. Raise Invalid_argument if the result is longer than Sys.max_string_length bytes.

val cat : t -> t -> t

cat s1 s2 concatenates s1 and s2 and returns the result as new byte sequence. Raise Invalid_argument if the result is longer than Sys.max_string_length bytes.

val iteri : t -> f:(int -> char -> unit) -> unit

iteri t ~f same as iter, but the function is applied to the index of the byte as first argument and the byte itself as second argument.

val map : t -> f:(char -> char) -> t

map s ~f applies function f in turn to all the bytes of s (in increasing index order) and stores the resulting bytes in a new sequence that is returned as the result.

val mapi : t -> f:(int -> char -> char) -> t

mapi s ~f calls f with each character of s and its index (in increasing index order) and stores the resulting bytes in a new sequence that is returned as the result.

val trim : t -> t

trim t returns a copy of t, without leading and trailing whitespace. The bytes regarded as whitespace are the ASCII characters ' ', '\012', '\n', '\r', and '\t'.

val escaped : t -> t

escaped t returns a copy of t, with special characters represented by escape sequences, following the lexical conventions of OCaml. Raise Invalid_argument if the result is longer than Sys.max_string_length bytes.

val index : t -> char -> int

index s c returns the index of the first occurrence of byte c in s. Raise Not_found if c does not occur in s.

val rindex : t -> char -> int

rindex s c returns the index of the last occurrence of byte c in s. Raise Not_found if c does not occur in s.

val index_from : t -> int -> char -> int

index_from s i c returns the index of the first occurrence of byte c in s after position i. index s c is equivalent to index_from s 0 c. Raise Invalid_argument if i is not a valid position in s. Raise Not_found if c does not occur in s after position i.

val rindex_from : t -> int -> char -> int

rindex_from s i c returns the index of the last occurrence of byte c in s before position i+1. rindex s c is equivalent to rindex_from s (length s - 1) c. Raise Invalid_argument if i+1 is not a valid position in s. Raise Not_found if c does not occur in s before position i+1.

val contains : t -> char -> bool

contains s c tests if byte c appears in s.

val contains_from : t -> int -> char -> bool

contains_from s start c tests if byte c appears in s after position start. contains s c is equivalent to contains_from s 0 c. Raise Invalid_argument if start is not a valid position in s.

val rcontains_from : t -> int -> char -> bool

rcontains_from s stop c tests if byte c appears in s before position stop+1. Raise Invalid_argument if stop < 0 or stop+1 is not a valid position in s.

val uppercase : t -> t

uppercase t returns a copy of t, with all lowercase letters translated to uppercase, including accented letters of the ISO Latin-1 (8859-1) character set.

val lowercase : t -> t

lowercase t returns a copy of t, with all uppercase letters translated to lowercase, including accented letters of the ISO Latin-1 (8859-1) character set.

val capitalize : t -> t

capitalize t returns a copy of t, with the first byte set to uppercase.

val uncapitalize : t -> t

uncapitalize t returns a copy of t, with the first byte set to lowercase.

module Unsafe : sig ... end
OCaml

Innovation. Community. Security.