Runtime support for ppx_xml_conv and ppx_csv_conv
Module type Csvfields . Csv . Csvable
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