type t
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
module Set : Set.S with type elt = t
module Map : Map.S with type key = t
val nofid : t
val of_int32 : int32 -> ( t, [ `Msg of string ] ) Result.result
val to_int32 : t -> int32

A list of recommended fids. The client can allocate (on the server) up to 2^32 distinct fids (in theory) but this is obviously a bad thing to do. Instead clients are recommended to use fids from this (much smaller) list.

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.