Module Types.OpenMode

type io =
| Read(*

read access

*)
| Write(*

write access

*)
| ReadWrite(*

read and write access

*)
| Exec(*

execute access

*)

The io types allowed in an open 'mode'

val sexp_of_io : io -> Ppx_sexp_conv_lib.Sexp.t
val io_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> io
type t = {
io : io;
truncate : bool;(*

truncate file before opening

*)
rclose : bool;(*

remove file when closing

*)
append : bool;(*

meaningless flag

*)
}

A 'mode' passed as an argument to "Open" and "Create"

include Ppx_sexp_conv_lib.Sexpable.S with type t := t
val t_of_sexp : Sexplib0__.Sexp.t -> t
val sexp_of_t : t -> Sexplib0__.Sexp.t
val read_only : t
val write_only : t
val read_write : t
val exec : t
val sizeof : t -> int

The size of a buffer needed to hold t

val read : Cstruct.t -> (t * Cstruct.t, [ `Msg of string ]) Stdlib.result

Read a t from the given buffer and return it, along with the unused remainder of the buffer. If the buffer cannot be parsed then return an error.

val write : t -> Cstruct.t -> (Cstruct.t, [ `Msg of string ]) Stdlib.result

Write a t into the given buffer. If the buffer is too small, then return an error. Return the unused remainder of the buffer.