package protocol-9p

  1. Overview
  2. Docs
type flag =
  1. | Directory
    (*

    file is a directory

    *)
  2. | AppendOnly
    (*

    writes always hit the end of the file

    *)
  3. | Exclusive
    (*

    file is opened for exclusive use

    *)
  4. | Mount
    (*

    file is a mountpoint

    *)
  5. | Auth
    (*

    file is an authentication file

    *)
  6. | Temporary
    (*

    file is temporary and won't be backed up

    *)
val sexp_of_flag : flag -> Ppx_sexp_conv_lib.Sexp.t
val flag_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> flag
type t = {
  1. flags : flag list;
  2. version : int32;
  3. id : int64;
}

The server's unique id for the file. Two files are the same if and only if the Qids are the same.

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 any : t
val is_any : t -> bool
val file : ?id:int64 -> ?version:int32 -> ?append_only:bool -> ?exclusive:bool -> ?mount:bool -> ?auth:bool -> ?temporary:bool -> ?link:bool -> unit -> t

Construct a t representing a file

val dir : ?id:int64 -> ?version:int32 -> unit -> t

Construct a t representing a directory

include Protocol_9p_s.SERIALISABLE with type t := 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.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.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.