package protocol-9p

  1. Overview
  2. Docs
type io =
  1. | Read
    (*

    read access

    *)
  2. | Write
    (*

    write access

    *)
  3. | ReadWrite
    (*

    read and write access

    *)
  4. | 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 = {
  1. io : io;
  2. truncate : bool;
    (*

    truncate file before opening

    *)
  3. rclose : bool;
    (*

    remove file when closing

    *)
  4. 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 ]) 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 ]) 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.