Scroll to navigation

BytesLabels(3) OCaml library BytesLabels(3)

NAME

BytesLabels - Byte sequence operations.

Module

Module BytesLabels

Documentation

Module BytesLabels
: sig end

Byte sequence operations.

Since 4.02.0


This module is intended to be used through {!StdLabels} which replaces
{!Array}, {!Bytes}, {!List} and {!String} with their labeled counterparts.


For example:
{[
open StdLabels


let first = Bytes.sub ~pos:0 ~len:1
]}

val length : bytes -> int

Return the length (number of bytes) of the argument.

val get : bytes -> int -> char

get s n returns the byte at index n in argument s .

Raises Invalid_argument if n is not a valid index in s .

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

set s n c modifies s in place, replacing the byte at index n with c .

Raises Invalid_argument if n is not a valid index in s .

val create : int -> bytes

create n returns a new byte sequence of length n . The sequence is uninitialized and contains arbitrary bytes.

Raises Invalid_argument if n < 0 or n > Sys.max_string_length .

val make : int -> char -> bytes

make n c returns a new byte sequence of length n , filled with the byte c .

Raises Invalid_argument if n < 0 or n > Sys.max_string_length .

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

init n f returns a fresh byte sequence of length n , with character i initialized to the result of f i .

Raises Invalid_argument if n < 0 or n > Sys.max_string_length .

val empty : bytes

A byte sequence of size 0.

val copy : bytes -> bytes

Return a new byte sequence that contains the same bytes as the argument.

val of_string : string -> bytes

Return a new byte sequence that contains the same bytes as the given string.

val to_string : bytes -> string

Return a new string that contains the same bytes as the given byte sequence.

val sub : bytes -> pos:int -> len:int -> bytes

sub s start len returns a new byte sequence of length len , containing the subsequence of s that starts at position start and has length len .

Raises Invalid_argument if start and len do not designate a valid range of s .

val sub_string : bytes -> pos:int -> len:int -> string

Same as sub but return a string instead of a byte sequence.

val extend : bytes -> left:int -> right:int -> bytes

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 .

Since 4.05.0

Raises Invalid_argument if the result length is negative or longer than Sys.max_string_length bytes.

val fill : bytes -> pos:int -> len:int -> char -> unit

fill s start len c modifies s in place, replacing len characters with c , starting at start .

Raises Invalid_argument if start and len do not designate a valid range of s .

val blit : src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit

blit src srcoff dst dstoff len copies len bytes from sequence src , starting at index srcoff , to sequence dst , starting at index dstoff . It works correctly even if src and dst are the same byte sequence, and the source and destination intervals overlap.

Raises Invalid_argument if srcoff and len do not designate a valid range of src , or if dstoff and len do not designate a valid range of dst .

val blit_string : src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit

blit src srcoff dst dstoff len copies len bytes from string src , starting at index srcoff , to byte sequence dst , starting at index dstoff .

Since 4.05.0

Raises Invalid_argument if srcoff and len do not designate a valid range of src , or if dstoff and len do not designate a valid range of dst .

val concat : sep:bytes -> bytes list -> bytes

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.

val cat : bytes -> bytes -> bytes

cat s1 s2 concatenates s1 and s2 and returns the result as new byte sequence.

Since 4.05.0

Raises Invalid_argument if the result is longer than Sys.max_string_length bytes.

val iter : f:(char -> unit) -> bytes -> unit

iter f s applies function f in turn to all the bytes of s . It is equivalent to f (get s 0); f (get s 1); ...; f (get s
(length s - 1)); () .

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

Same as Bytes.iter , but the function is applied to the index of the byte as first argument and the byte itself as second argument.

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

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

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

mapi f s 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 : bytes -> bytes

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

val escaped : bytes -> bytes

Return a copy of the argument, with special characters represented by escape sequences, following the lexical conventions of OCaml.

val index : bytes -> char -> int

index s c returns the index of the first occurrence of byte c in s .

Raises Not_found if c does not occur in s .

val index_opt : bytes -> char -> int option

index_opt s c returns the index of the first occurrence of byte c in s or None if c does not occur in s .

Since 4.05

val rindex : bytes -> char -> int

rindex s c returns the index of the last occurrence of byte c in s .

Raises Not_found if c does not occur in s .

val rindex_opt : bytes -> char -> int option

rindex_opt s c returns the index of the last occurrence of byte c in s or None if c does not occur in s .

Since 4.05

val index_from : bytes -> int -> char -> int

index_from s i c returns the index of the first occurrence of byte c in s after position i . Bytes.index s c is equivalent to Bytes.index_from s 0 c .

Raises Invalid_argument if i is not a valid position in s .

Raises Not_found if c does not occur in s after position i .

val index_from_opt : bytes -> int -> char -> int option

index_from _opts i c returns the index of the first occurrence of byte c in s after position i or None if c does not occur in s after position i . Bytes.index_opt s c is equivalent to Bytes.index_from_opt s 0 c .

Since 4.05

Raises Invalid_argument if i is not a valid position in s .

val rindex_from : bytes -> 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 (Bytes.length s - 1) c .

Raises Invalid_argument if i+1 is not a valid position in s .

Raises Not_found if c does not occur in s before position i+1 .

val rindex_from_opt : bytes -> int -> char -> int option

rindex_from_opt s i c returns the index of the last occurrence of byte c in s before position i+1 or None if c does not occur in s before position i+1 . rindex_opt s c is equivalent to rindex_from s (Bytes.length s - 1) c .

Since 4.05

Raises Invalid_argument if i+1 is not a valid position in s .

val contains : bytes -> char -> bool

contains s c tests if byte c appears in s .

val contains_from : bytes -> 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 .

Raises Invalid_argument if start is not a valid position in s .

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

rcontains_from s stop c tests if byte c appears in s before position stop+1 .

Raises Invalid_argument if stop < 0 or stop+1 is not a valid position in s .

val uppercase : bytes -> bytes

Deprecated. Functions operating on Latin-1 character set are deprecated.

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

val lowercase : bytes -> bytes

Deprecated. Functions operating on Latin-1 character set are deprecated.

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

val capitalize : bytes -> bytes

Deprecated. Functions operating on Latin-1 character set are deprecated.

Return a copy of the argument, with the first character set to uppercase, using the ISO Latin-1 (8859-1) character set..

val uncapitalize : bytes -> bytes

Deprecated. Functions operating on Latin-1 character set are deprecated.

Return a copy of the argument, with the first character set to lowercase, using the ISO Latin-1 (8859-1) character set..

val uppercase_ascii : bytes -> bytes

Return a copy of the argument, with all lowercase letters translated to uppercase, using the US-ASCII character set.

Since 4.05.0

val lowercase_ascii : bytes -> bytes

Return a copy of the argument, with all uppercase letters translated to lowercase, using the US-ASCII character set.

Since 4.05.0

val capitalize_ascii : bytes -> bytes

Return a copy of the argument, with the first character set to uppercase, using the US-ASCII character set.

Since 4.05.0

val uncapitalize_ascii : bytes -> bytes

Return a copy of the argument, with the first character set to lowercase, using the US-ASCII character set.

Since 4.05.0

type t = bytes

An alias for the type of byte sequences.

val compare : t -> t -> int

The comparison function for byte sequences, with the same specification as compare . Along with the type t , this function compare allows the module Bytes to be passed as argument to the functors Set.Make and Map.Make .

val equal : t -> t -> bool

The equality function for byte sequences.

Since 4.05.0

Iterators

val to_seq : t -> char Seq.t

Iterate on the string, in increasing index order. Modifications of the string during iteration will be reflected in the iterator.

Since 4.07

val to_seqi : t -> (int * char) Seq.t

Iterate on the string, in increasing order, yielding indices along chars

Since 4.07

val of_seq : char Seq.t -> t

Create a string from the generator

Since 4.07

Binary encoding/decoding of integers

The functions in this section binary encode and decode integers to and from byte sequences.

All following functions raise Invalid_argument if the space needed at index i to decode or encode the integer is not available.

Little-endian (resp. big-endian) encoding means that least (resp. most) significant bytes are stored first. Big-endian is also known as network byte order. Native-endian encoding is either little-endian or big-endian depending on Sys.big_endian .

32-bit and 64-bit integers are represented by the int32 and int64 types, which can be interpreted either as signed or unsigned numbers.

8-bit and 16-bit integers are represented by the int type, which has more bits than the binary encoding. These extra bits are handled as follows:

-Functions that decode signed (resp. unsigned) 8-bit or 16-bit integers represented by int values sign-extend (resp. zero-extend) their result.

-Functions that encode 8-bit or 16-bit integers represented by int values truncate their input to their least significant bytes.

val get_uint8 : bytes -> int -> int

get_uint8 b i is b 's unsigned 8-bit integer starting at byte index i .

Since 4.08

val get_int8 : bytes -> int -> int

get_int8 b i is b 's signed 8-bit integer starting at byte index i .

Since 4.08

val get_uint16_ne : bytes -> int -> int

get_uint16_ne b i is b 's native-endian unsigned 16-bit integer starting at byte index i .

Since 4.08

val get_uint16_be : bytes -> int -> int

get_uint16_be b i is b 's big-endian unsigned 16-bit integer starting at byte index i .

Since 4.08

val get_uint16_le : bytes -> int -> int

get_uint16_le b i is b 's little-endian unsigned 16-bit integer starting at byte index i .

Since 4.08

val get_int16_ne : bytes -> int -> int

get_int16_ne b i is b 's native-endian signed 16-bit integer starting at byte index i .

Since 4.08

val get_int16_be : bytes -> int -> int

get_int16_be b i is b 's big-endian signed 16-bit integer starting at byte index i .

Since 4.08

val get_int16_le : bytes -> int -> int

get_int16_le b i is b 's little-endian signed 16-bit integer starting at byte index i .

Since 4.08

val get_int32_ne : bytes -> int -> int32

get_int32_ne b i is b 's native-endian 32-bit integer starting at byte index i .

Since 4.08

val get_int32_be : bytes -> int -> int32

get_int32_be b i is b 's big-endian 32-bit integer starting at byte index i .

Since 4.08

val get_int32_le : bytes -> int -> int32

get_int32_le b i is b 's little-endian 32-bit integer starting at byte index i .

Since 4.08

val get_int64_ne : bytes -> int -> int64

get_int64_ne b i is b 's native-endian 64-bit integer starting at byte index i .

Since 4.08

val get_int64_be : bytes -> int -> int64

get_int64_be b i is b 's big-endian 64-bit integer starting at byte index i .

Since 4.08

val get_int64_le : bytes -> int -> int64

get_int64_le b i is b 's little-endian 64-bit integer starting at byte index i .

Since 4.08

val set_uint8 : bytes -> int -> int -> unit

set_uint8 b i v sets b 's unsigned 8-bit integer starting at byte index i to v .

Since 4.08

val set_int8 : bytes -> int -> int -> unit

set_int8 b i v sets b 's signed 8-bit integer starting at byte index i to v .

Since 4.08

val set_uint16_ne : bytes -> int -> int -> unit

set_uint16_ne b i v sets b 's native-endian unsigned 16-bit integer starting at byte index i to v .

Since 4.08

val set_uint16_be : bytes -> int -> int -> unit

set_uint16_be b i v sets b 's big-endian unsigned 16-bit integer starting at byte index i to v .

Since 4.08

val set_uint16_le : bytes -> int -> int -> unit

set_uint16_le b i v sets b 's little-endian unsigned 16-bit integer starting at byte index i to v .

Since 4.08

val set_int16_ne : bytes -> int -> int -> unit

set_int16_ne b i v sets b 's native-endian signed 16-bit integer starting at byte index i to v .

Since 4.08

val set_int16_be : bytes -> int -> int -> unit

set_int16_be b i v sets b 's big-endian signed 16-bit integer starting at byte index i to v .

Since 4.08

val set_int16_le : bytes -> int -> int -> unit

set_int16_le b i v sets b 's little-endian signed 16-bit integer starting at byte index i to v .

Since 4.08

val set_int32_ne : bytes -> int -> int32 -> unit

set_int32_ne b i v sets b 's native-endian 32-bit integer starting at byte index i to v .

Since 4.08

val set_int32_be : bytes -> int -> int32 -> unit

set_int32_be b i v sets b 's big-endian 32-bit integer starting at byte index i to v .

Since 4.08

val set_int32_le : bytes -> int -> int32 -> unit

set_int32_le b i v sets b 's little-endian 32-bit integer starting at byte index i to v .

Since 4.08

val set_int64_ne : bytes -> int -> int64 -> unit

set_int64_ne b i v sets b 's native-endian 64-bit integer starting at byte index i to v .

Since 4.08

val set_int64_be : bytes -> int -> int64 -> unit

set_int64_be b i v sets b 's big-endian 64-bit integer starting at byte index i to v .

Since 4.08

val set_int64_le : bytes -> int -> int64 -> unit

set_int64_le b i v sets b 's little-endian 64-bit integer starting at byte index i to v .

Since 4.08

2022-03-11 OCamldoc