package delimited_parsing

  1. Overview
  2. Docs

Module Delimited.WriteSource

Write CSVs & CSV-like delimited formats.

include module type of struct include Write end

Used to describe a way to create a single row of a CSV from a given type.

Sourceval empty : 'a t
Sourceval column : ('a -> string) -> header:string -> 'a t
Sourceval column_m : (module Delimited_kernel__.Write_intf.To_string with type t = 'a) -> header:string -> 'a t
Sourceval column_m_opt : ?default:string -> (module Delimited_kernel__.Write_intf.To_string with type t = 'a) -> header:string -> 'a option t

default is printed in place of None, and if not supplied is the empty string.

Sourceval of_list : 'a t list -> 'a t
Sourceval append : 'a t -> 'a t -> 'a t
Sourceval contra_map : 'b t -> f:('a -> 'b) -> 'a t
Sourceval map_headers : 'a t -> f:(string -> string) -> 'a t
Sourceval headers : 'a t -> string list
Sourceval to_columns : 'a t -> 'a -> string list

Open for prefix operators useful for using with Fields.to_list.

Sourceval with_writer : ?sep:char -> ?line_breaks:[ `Unix | `Windows ] -> write_header:bool -> 'a t -> Async.Writer.t -> f:('a Async.Pipe.Writer.t -> 'b Async.Deferred.t) -> 'b Async.Deferred.t

Make a pipe writer for 'as from a writer. The 'as will be written out as CSVs.

Once with_writer's return Deferred becomes determined, it is guaranteed that the whole CSV has hit the OS buffer.

The writer will NOT be closed when the pipe closes.

Sourceval with_file : ?sep:char -> ?line_breaks:[ `Unix | `Windows ] -> write_header:bool -> 'a t -> string -> f:('a Async.Pipe.Writer.t -> 'b Async.Deferred.t) -> 'b Async.Deferred.t

Make a pipe writer for 'as from a filename, using the given CSV converter.

Sourcemodule By_row : sig ... end
Sourcemodule Expert : sig ... end

Here be dragons. You may wish to use these functions over the bracketed interface above, but you MUST wait on Pipe.upstream_flushed after closing the pipe.

Sourcemodule Without_expert : module type of Write with module Expert := Write.Expert

Helper for converting from the old interface. Use this snippet in files to disable the expert interface:

OCaml

Innovation. Community. Security.