dsv-1.0.0.0: library/DSV/FileStrictCsvMap.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE ScopedTypeVariables #-}
module DSV.FileStrictCsvMap
( mapCsvFileStrictWithoutHeader
, mapCsvFileStrictIgnoringHeader
, mapCsvFileStrictUsingHeader
) where
import DSV.ByteString
import DSV.CommonDelimiters
import DSV.FileStrictMap
import DSV.IO
import DSV.ParseStop
import DSV.Prelude
import DSV.Vector
mapCsvFileStrictWithoutHeader ::
forall m row .
MonadIO m
=> FilePath
-- ^ The path of a CSV file to read
-> (Vector ByteString -> IO row)
-- ^ Conversion function by which you specify how to interpret one row of bytes from the CSV file
-> m (ParseStop, Vector row)
mapCsvFileStrictWithoutHeader fp f =
mapDsvFileStrictWithoutHeader comma fp f
mapCsvFileStrictIgnoringHeader ::
forall m row .
MonadIO m
=> FilePath
-- ^ The path of a CSV file to read
-> (Vector ByteString -> IO row)
-- ^ Conversion function by which you specify how to interpret one row of bytes from the CSV file
-> m (ParseStop, Vector row)
mapCsvFileStrictIgnoringHeader fp f =
mapDsvFileStrictIgnoringHeader comma fp f
mapCsvFileStrictUsingHeader ::
forall m row .
MonadIO m
=> FilePath
-- ^ The path of a CSV file to read
-> (Vector ByteString -> IO (Vector ByteString -> IO row))
-- ^ Function which interprets the header (the first @Vector ByteString@) and returns a conversion function (@Vector ByteString -> IO row@) by which you specify how to interpret one row of bytes from the CSV file
-> m (ParseStop, Vector row)
mapCsvFileStrictUsingHeader fp f =
mapDsvFileStrictUsingHeader comma fp f