Make_binable.1-Rawinclude Bin_prot.Binable.S with type t := tinclude Bin_prot.Binable.S_only_functions with type t := tval bin_size_t : t Bin_prot.Size.sizerval bin_write_t : t Bin_prot.Write.writerval bin_read_t : t Bin_prot.Read.readerval __bin_read_t__ : (int -> t) Bin_prot.Read.readerThis function only needs implementation if t exposed to be a polymorphic variant. Despite what the type reads, this does *not* produce a function after reading; instead it takes the constructor tag (int) before reading and reads the rest of the variant t afterwards.
val bin_shape_t : Bin_prot.Shape.tval bin_writer_t : t Bin_prot.Type_class.writerval bin_reader_t : t Bin_prot.Type_class.readerval bin_t : t Bin_prot.Type_class.tinclude Ppx_sexp_conv_lib.Sexpable.S with type t := tval t_of_sexp : Sexplib0.Sexp.t -> tval sexp_of_t : t -> Sexplib0.Sexp.tval here : Source_code_position.there will appear in validation-failure error messages.
val validate : t Base.Validate.checkval validate_binio_deserialization : Base.Bool.tvalidate_binio_deserialization controls whether when the binio representation of a value is deserialized, the resulting value is validated. Whether one needs to validate values upon deserialization depends on how serialization is being used. If one only ever serializes/deserializes so that the validation function is the same on both ends, then one need not validate upon deserialization, because only values that already pass the validation function can be serialized.
If the validation functions in the serializer and deserializer may be different, e.g. because of two different versions of the code compiled at different times, then it is possible to serialize a value that may fail validation upon deserialization. In that case, having validate_binio_deserialization = true is necessary to prevent creating values that don't pass the validation function.