ppx_protocol_conv

Ppx for generating serialisation and de-serialisation functions of ocaml types
IN THIS PACKAGE
val list_map : f:( 'a -> 'b ) -> 'a list -> 'b list
exception Protocol_error of string

Excpetion raised if the type could not be serialized

val map_record_in : 't 'a 'b. ( string -> string ) -> ( 't, 'a, 'b ) Record_in.t -> ( 't, 'a, 'b ) Record_in.t

Map fields names of a Record_in structure

val to_record : 't 'constr 'b. ?strict:bool -> ( 't, 'constr, 'b ) Record_in.t -> 'constr -> (string * 't) list -> 'b

to_recordspecconstructorts returns the constructed value. ts is a associative array (string * t) list, mapping fields to the deserialized value t if strict is true, an error will be raised if input contains an unknown field. If dublicate fields are found in the input, an error is raised

val map_record_out : 't 'a. ( string -> string ) -> ( 't, 'a, 't ) Record_out.t -> ( 't, 'a, 't ) Record_out.t

Map fields names of a Record_out structure

type 't serialize_record = (string * 't) list -> 't
val of_record : 'a 't. omit_default:bool -> 't serialize_record -> ( 't, 'a, 't ) Record_out.t -> 'a

of_recordmap_fspec produces a valid deserialisation function for a record type The map_f function is called to produce the serialized result from a field_name, t association list. If omit_default is true, then default values are omitted from the output

val to_tuple : 't 'a 'b. ( 't, 'a, 'b ) Tuple_in.t -> 'a -> 't list -> 'b

to_tuplespectlist produces a tuple from the serialized values in tlist

type 't serialize_tuple = 't list -> 't
val of_tuple : 't 'a. 't serialize_tuple -> ( 't, 'a, 't ) Tuple_out.t -> 'a
type 't serialize_variant = string -> 't list -> 't
val of_variant : 't. 't serialize_variant -> string -> ( 't, 'a, 't ) Tuple_out.t -> 'a

of_variantspecv serializes v and returns the serialized values as a list or map

val map_constructor_names : ( string -> string ) -> ( 't, 'a ) Variant_in.t list -> ( 't, 'a ) Variant_in.t list

Map field names in all inline records of the spec

val to_variant : ( 't, 'a ) Variant_in.t list -> string -> 't list -> 'a