Module Imandrakit.Codec

Codec (encoder/decoder) for values

module Twine = Imandrakit_twine
val error_kind : Imandrakit_error.Kind.t
type 'a t = {
  1. name : string;
  2. enc : 'a Twine.encoder;
    (*

    Encode value

    *)
  3. dec : 'a Twine.decoder;
    (*

    Decode value

    *)
}

A codec for values of type 'a

val name : 'a t -> string
val encode : 'a t -> Twine.Encode.t -> 'b -> Twine.Encode.immediate
val decode : 'a t -> Twine.Decode.t -> Twine.offset -> 'a0
val create : enc:'a Twine.encoder -> dec:'b Twine.decoder -> name:string -> unit -> 'c t