package ppx_csv_conv
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=04ee19832f9f94355752607cc62b32753f0fcf563a5e47c39c631856a204eaa3
md5=e431f9e3623677019c5b4899767eb651
Description
Part of the Jane Street's PPX rewriters collection.
Published: 21 May 2017
README
title: ppx_csv_conv parent: ../README.md
Generate functions to read/write records in csv format.
ppx_csv_conv
generates functions to output some records as a csv file, and read the records back from a list of strings coming from a csv file or a database query.
Usage
Annotate the type: [@@deriving csv, fields]
type t = {
field : ...
....
} [@@deriving csv, fields]
Csv uses fields so fields is also required. Now the functions listed in Csvfields.Csv.Csvable
are included in the module, including conversion to and from string lists, dumping to files, and loading files.
The Csvfields.Csv
module provides the Atom
functor, which accepts a Stringable module to produce the necessary functions for recursive calls:
module Date = struct
include Date
include (Csvfields.Csv.Atom (Date) : Csvfields.Csv.Csvable with type t := t)
end
type t = {
a : float;
b : string;
c : int;
e : Date.t;
} [@@deriving csv, fields]
Generate code/functions with types:
include (Csvfields.Csv.Csvable with type t := t)
(Known) limitations:
No
option
,ref
, orlazy_t
types allowed.No variant types ... nothing other than primitive types and records. You should create your own stringable version of those types and use the
Atom
functor.The name of the type must be
t
.
Dependencies (9)
-
ocaml-migrate-parsetree
>= "0.4" & < "2.0.0"
-
ppx_type_conv
>= "v0.9" & < "v0.10"
-
ppx_metaquot
>= "v0.9" & < "v0.10"
-
ppx_driver
>= "v0.9" & < "v0.10"
-
ppx_core
>= "v0.9" & < "v0.10"
-
ppx_conv_func
>= "v0.9" & < "v0.10"
-
jbuilder
>= "1.0+beta7"
-
csvfields
>= "v0.9" & < "v0.10"
-
ocaml
>= "4.03.0"
Dev Dependencies
None
Conflicts
None