An implementation of the 9P protocol in pure OCaml
Library protocol_9p
Module Protocol_9p . Types . Tag
type t
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
val equal : t -> t -> bool

equal is the equality function over tags.

module Set : Set.S with type elt = t
module Map : Map.S with type key = t
val notag : t

The special tag value used during authentication

A list of recommended tags. The client can generate up to 2^16 distinct tags but this represents a large number of concurrent transactions. Instead clients are recommended to use fids drawn from this much (much smaller) list.

val of_int : int -> ( t, [ `Msg of string ] ) Result.result
val to_int : t -> int
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.