package delimited_parsing

  1. Overview
  2. Docs
include module type of Delimited_kernel.Read.Streaming
type 'a builder_t = 'a Delimited_kernel.Read.t
val create : ?strip:bool -> ?sep:char -> ?quote:[ `No_quoting | `Using of char ] -> ?start_line_number:int -> ?on_invalid_row:'a Delimited_kernel.Read.On_invalid_row.t -> ?header:Delimited_kernel.Read.Header.t -> 'a builder_t -> init:'b -> f:('b -> 'a -> 'b) -> 'b t
val create_indexed : ?strip:bool -> ?sep:char -> ?quote:[ `No_quoting | `Using of char ] -> ?start_line_number:int -> ?on_invalid_row:'a Delimited_kernel.Read.On_invalid_row.t -> ?header:Delimited_kernel.Read.Header.t -> 'a builder_t -> init:'b -> f:(int -> 'b -> 'a -> 'b) -> 'b t

Like create, but additionally passes the line number of the current row to f

val input_string : 'a t -> ?pos:int -> ?len:int -> string -> 'a t
val input : 'a t -> ?pos:int -> ?len:int -> bytes -> 'a t
val finish : 'a t -> 'a t
val acc : 'a t -> 'a
val headers : 'a t -> Core.String.Set.t option
val list_of_headers : 'a t -> string list option

Same as headers, but preserves the order in which the headers were present in the file

val state : 'a t -> [ `Parsing_header | `Parsing_rows ]
val input_reader : 'a t -> Async.Reader.t -> 'a t Async.Deferred.t

input_reader t reader feeds all bytes from reader to the delimited parser. It does not call finish after reaching EOF, one need to call it explicitly if needed.

val read_file : ?strip:bool -> ?sep:char -> ?quote:[ `No_quoting | `Using of char ] -> ?start_line_number:int -> ?on_invalid_row:'a On_invalid_row.t -> ?header:Header.t -> 'a builder_t -> init:'b -> f:('b -> 'a -> 'b) -> filename:string -> 'b t Async.Deferred.t

Reads all bytes from filename and call finish after reaching EOF.

OCaml

Innovation. Community. Security.