Module Csvfields.Csv.Atom

A functor to quickly generate a Csvable module using its string conversion functions

Parameters

Signature

include Csvable_simple
type t

The t that can be represented in a CSV file.

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 rev_csv_header_spec' : Spec.t list ‑> _ ‑> _ ‑> Spec.t list
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_header : string list

The list of strings creating the header of the csvable type.

val csv_header_spec : Spec.t list

t_of_row row creates type t from the row.

val t_of_row : string list ‑> t

t_of_row row creates type t from the row.

val row_of_t : t ‑> string list

row_of_t t creates a row from csvable.

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