A functor to quickly generate a Csvable module using its string conversion functions
S : Stringable
include Csvable_simple
val is_csv_atom : bool
true
if csvable
will be represented as a column, and its label is the field name
of a containing record.
val rev_csv_header' : string list ‑> _ ‑> _ ‑> string list
A Fields.fold
friendly version of a function to collect the csv header of the
csvable
type. The output is the header in reverse order.
val t_of_row' : _ ‑> string list ‑> (unit ‑> t) * string list
t_of_row' _ row
generates a Fields.make_creator
friendly function that outputs a
pair (creator, tail)
such that creator ()
generates the type t
with the first
elements in row
, and tail
is the remaining set of elements from row
that where not
used in the creation of t
.
val write_row_of_t' : is_first:bool ‑> is_last:bool ‑> writer:(string ‑> unit) ‑> _ ‑> _ ‑> t ‑> unit
row_of_t'
has the same arguments as Helper.write
. The ignored arguments are
used to make it Fields.fold
friendly.
val csv_load : ?separator:char ‑> string ‑> t list
The following functions are wrappers around the corresponding functions in
Csvlib.Csv
.
val csv_load_in : ?separator:char ‑> Core.In_channel.t ‑> t list
val csv_save_fn : ?separator:char ‑> (string ‑> unit) ‑> t list ‑> unit
val csv_save_out : ?separator:char ‑> Core.Out_channel.t ‑> t list ‑> unit
val csv_save : ?separator:char ‑> string ‑> t list ‑> unit