Module Write.Expert
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.
val maybe_escape_field : ?quote:char -> ?sep:char -> string -> stringEscape the a CSV field if need be.
val escape_field : ?quote:char -> string -> stringEscape a CSV (even if doesn't have any characters that require escaping).
val quote_len : quote:char -> sep:char -> pos:int -> len:int -> string -> int optionGet the escaped length of one quoted field (without the quotes). Returns None if the field doesn't need to be escaped.
val quote_blit : quote:char -> src:string -> dst:Core_kernel.Bytes.t -> src_pos:int -> dst_pos:int -> len:int -> intCopy and escapes the content of a field over from one string to another. This does not put the quotes in.
val of_writer : ?sep:char -> ?line_breaks:[ `Unix | `Windows ] -> write_header:bool -> 'a t -> Async.Writer.t -> 'a Async.Pipe.Writer.tMake a pipe writer for
'as from a writer. The'as will be written out as CSVs.WARNING: you MUST wait on
Pipe.upstream_flushedbefore doing anything with the resulting file
val of_writer_and_close : ?sep:char -> ?line_breaks:[ `Unix | `Windows ] -> write_header:bool -> 'a t -> Async.Writer.t -> 'a Async.Pipe.Writer.tMake a pipe writer for
'as from a writer. The'as will be written out as CSVs.The writer will be closed when the pipe closes.
WARNING: you MUST wait on
Pipe.upstream_flushedbefore doing anything with the resulting file
val create_writer : ?sep:char -> ?line_breaks:[ `Unix | `Windows ] -> write_header:bool -> 'a t -> string -> 'a Async.Pipe.Writer.t Async.Deferred.tMake a pipe writer for
'as from a filename. The'as will be written out as CSVs.The writer will be closed when the pipe closes.
WARNING: you MUST wait on
Pipe.upstream_flushedbefore doing anything with the resulting file
module By_row : sig ... end