I’m confused about how to use
bin_prot to write and read serialized data to/from a file.
bin_prot has many functions with “write” and “read” in their names, and some return functions with type
writer, etc. (see
Bin_prot.Read). However, it looks as if reading and writing is always to/from a
.buf buffer (which is a
Bigarray.Array under the hood).
bin_prot seems to deal with file I/O. (I haven’t explored every function in every
bin_prot module, but I’ve checked every module that looks like it might be relevant.) This seems sensible; file I/O can be done elsewhere.
So my guess has been that the intended way to use
bin_prot is to write or read from a special
bin_prot buffer to perform serialization conversions. Then one writes the buffer to a file using non-
However, the type of
bin_prot's buffers are specific to
bin_prot. For example, the fuction
Core.Out_channel.output_buffer has type
out_channel -> Base__Buffer.t -> unit = <fun>, but
Base_Buffer.t is not compatible with
Bin_prot.Common.buf. I also have not figured out how to write
bin_prot buffers using I/O functions in
What’s a good way to use
bin_prot to serialize to/from a file? Any help, pointers (“Go read X”), etc. will be appreciated. Thanks.
(Nothing in the
bin_prot README addresses these questions afaics. I also haven’t yet found answers in either version of RWO.)