Library
Module
Module type
Parameter
Class
Class type
Mutable byte windows on top of Cstruct bigarrays
Type for mutable windows on top of bigarrays, with bounds automatically updated when values are read/write in the buffer.
val create : int -> t
Create a new buffer.
val to_string : t -> string
Create a string from a buffer.
val length : t -> int
Get the buffer length.
val offset : t -> int
Get the buffer offset.
val shift : t -> int -> unit
Shift the buffer window. Negative offsets are supported.
val index : t -> char -> int option
Return the offset corresponding to the first occurence of the character in the given string.
Print an error message, the buffer contents and raise a exception
val parse_error : ('a, unit, string, 'b) format4 -> 'a
Print an error message and raise an exception
val hexdump : t -> unit
Same as Cstruct.hexdump
.
val debug : t -> string
Same as Cstruct.debug
.
Basic IO operations
Get/set big-endian integers of various sizes.
val get_char : t -> char
get_char buf
return the character stored in buf
.
val get_uint8 : t -> int
get_uint8 buf
is the 8 bit unsigned integer stored in buf
.
val get_be_uint16 : t -> int
get_uint16 buf
is the 16 bit long big-endian unsigned integer stored in buf
.
val get_be_uint32 : t -> int32
get_uint32 buf
is the 32 bit long big-endian unsigned integer stored in buf
.
val get_be_uint64 : t -> int64
get_uint64 buf
is the 64 bit long big-endian unsigned integer stored in buf
.
val get_string : t -> int -> string
get_string buf len
is the string of size len
stored in buf
.
val pick_string : t -> int -> string option
pick_string buf len
looks for the string of size len
in the buffer, without consuming it. Return None
if the buffer is bigger than len
.
get_delim buf c fn
builds a subwindow of buf
by looking at the first occurence of the character c
. Once the window is built, apply fn
on the resulting buffer. Return None
if c
does not appear in the current buffer.
val get_string_delim : t -> char -> string option
get_string_delim buf c
returns the string appearing between the start of the buffer buf
and ending at the first occurence of the character c
. Return None
if c
does not appear in buf
.
val set_char : t -> char -> unit
set_char buf off c
write the character c
in buf
at offset off
.
val set_uint8 : t -> int -> unit
set_uint8 buf
write the 8 bit long integer stored in buf
.
val set_be_uint16 : t -> int -> unit
set_uint16 buf i
writes the 16 bit long big-endian unsigned integer i
in buf
.
val set_be_uint32 : t -> int32 -> unit
set_uint32 buf i
writes the 32 bit long big-endian unsigned integer i
in buf
.
val set_be_uint64 : t -> int64 -> unit
set_uint64 buf i
writes the 64 bit long big-endian unsigned integer i
in buf
.
val set_string : t -> string -> unit
set_string buf str
write the string str
into buf
.
val get_le_uint16 : t -> int
get_uint16 buf
is the 16 bit long little-endian unsigned integer stored in buf
.
val get_le_uint32 : t -> int32
get_uint32 buf
is the 32 bit long little-endian unsigned integer stored in buf
.
val get_le_uint64 : t -> int64
get_uint64 buf
is the 64 bit long little-endian unsigned integer stored in buf
.
val set_le_uint16 : t -> int -> unit
set_uint16 buf i
writes the 16 bit long little-endian unsigned integer i
in buf
.
val set_le_uint32 : t -> int32 -> unit
set_uint32 buf i
writes the 32 bit long little-endian unsigned integer i
in buf
.
val set_le_uint64 : t -> int64 -> unit
set_uint64 buf i
writes the 64 bit long little-endian unsigned integer i
in buf
.
val of_bigarray : ?off:int -> ?len:int -> Cstruct.buffer -> t
of_bigarray ~off ~len b
is the mstruct contained in b
starting at off
, of length len
.
val to_bigarray : t -> Cstruct.buffer
Accessor. Return the underlying bigarray.