Module Types.Fid

type t
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
module Set : Stdlib.Set.S with type elt = t
module Map : Stdlib.Map.S with type key = t
val nofid : t
val of_int32 : int32 -> (t[ `Msg of string ]) Stdlib.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 ]) 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.