- csvToAlgebraicMatrix
Slice!(CsvAlgebraic*, 2) csvToAlgebraicMatrix(string text, char separator, char quote, CsvProxy.Conversion[] conversions, char comment, ubyte skipRows, bool fill, bool skipEmptyLines, bool parseNumbers, bool parseTimestamps, CsvAlgebraic delegate(return scope const(char)[] unquotedString, CsvAlgebraic scalar, bool quoted, size_t columnIndex) @(safe) pure conversionFinalizer)
- csvToStringMatrix
Slice!(string*, 2) csvToStringMatrix(string text, char separator, char quote, char comment, ubyte skipRows, bool fill, bool skipEmptyLines)
- inclusiveHeader
string[] inclusiveHeader(const(StringMap!T)[] objects)
- intersectionHeader
string[] intersectionHeader(const(StringMap!T)[] objects)
- matrixAsDataFrame
StringMap!(Slice!(T*, 1, SliceKind.universal)) matrixAsDataFrame(Slice!(T*, 2) matrix)
Represent CSV data as dictionary of columns.
Uses the first row as header.
- objectsAsRows
auto objectsAsRows(const(StringMap!T)[] objects, const(string)[] header)
Contruct a lazy random-access-range (ndslice)
- objectsAsTable
auto objectsAsTable(const(StringMap!T)[] objects, const(string)[] header)
- serializeCsv
string serializeCsv(V value, char separator, char quote, bool quoteAll, string naValue, string trueValue, string falseValue, int serdeTarget)
CSV serialization function.
- serializeCsv
void serializeCsv(Appender appender, V value, char separator, char quote, bool quoteAll, string naValue, string trueValue, string falseValue, int serdeTarget)
Ion serialization for custom outputt range.
CSV/TSV parsing
CsvProxy can be serialized to Ion, JSON, MsgPack, or YAML and then deserialized to a specified type. That approachs allows to use the same mir deserialization pattern like for other data types. serde, serde, mir, ion, conv unifies this two steps throught binary Ion format, which serves as an efficient DOM representation for all other formats.