package fuseau

  1. Overview
  2. Docs
include module type of Fuseau.Iostream.In

Input stream.

class type t = object ... end

An input stream, i.e an incoming stream of bytes.

val create : ?close:(unit -> unit) -> input:(bytes -> int -> int -> int) -> unit -> t
val empty : t

Empty input, contains 0 bytes.

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

An input channel reading from the string.

  • parameter offset

    initial offset in the string. Default 0.

  • parameter len

    the length of the slice we read from. Default String.length s - off.

val of_bytes : ?off:int -> ?len:int -> bytes -> t

An input channel reading from the bytes buffer. See of_string for more details.

val input : t -> bytes -> int -> int -> int

Read bytes into the given buffer. This returns 0 only if the stream has reached its end.

  • raises Invalid_argument

    if the arguments do not denote a valid slice.

val input_all : ?buf:bytes -> t -> string

input_all ic reads the whole content of ic into a string.

  • parameter buf

    the initial buffer to use internally.

val really_input : t -> bytes -> int -> int -> unit

Same as input, but reads exactly the demanded amount of bytes.

  • raises Invalid_argument

    if the arguments do not denote a valid slice.

  • raises End_of_file

    if the input does not contain enough data.

val really_input_string : t -> int -> string

really_input_string ic n reads exactly n bytes of ic and returns them as a string.

  • raises End_of_file

    if the input does not contain enough data.

val concat : t list -> t

Read from each stream, in order

val close : t -> unit

Close the input stream. This is idempotent.

val copy_into : ?buf:bytes -> t -> Fuseau.Iostream.Out.t -> unit

Copy the whole stream into the given output.

val of_unix_fd : ?close_noerr:bool -> ?buf:bytes -> file_descr -> t