Up

Module IOVec

I/O-vectors for scatter/gather-operations

Signature

type 'buf t = private {
buf
: 'buf ; (* Buffer holding the I/O-vector *)
pos
: int ; (* Position of I/O-vector in buffer *)
len
: int ; (* Length of I/O-vector in buffer *)
}

Representation of I/O-vectors. NOTE: DO NOT CHANGE THE MEMORY LAYOUT OF THIS TYPE!!! All C-functions in our bindings that handle I/O-vectors depend on it.

val t_of_sexp : (Sexplib.Sexp.t -> 'buf) -> Sexplib.Sexp.t -> 'buf t
val sexp_of_t : ('buf -> Sexplib.Sexp.t) -> 'buf t -> Sexplib.Sexp.t
type 'buf kind

Kind of I/O-vector buffers

type bigstring = (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
val string_kind : string kind
val bigstring_kind : bigstring kind
val empty : 'buf kind -> 'buf t

empty the empty I/O-vector.

val of_string : ?pos:int -> ?len:int -> string -> string t

of_string ?pos ?len str

Returns an I/O-vector designated by position pos and length len in string str.
Raises [Invalid_argument] if designated substring out of bounds.
Param [pos] default = 0
Param [len] default = String.length str - pos
val of_bigstring : ?pos:int -> ?len:int -> bigstring -> bigstring t

of_bigstring ?pos ?len bstr

Returns an I/O-vector designated by position pos and length len in bigstring bstr.
Raises [Invalid_argument] if designated substring out of bounds.
Param [pos] default = 0
Param [len] default = String.length str - pos
val drop : 'buf t -> int -> 'buf t

drop iovec n drops n characters from iovec.

Returns resulting I/O-vector.
Raises [Failure] if n is greater than length of iovec.
val max_iovecs : int