{-# 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
-> (Vector ByteString -> IO row)
-> m (ParseStop, Vector row)
FilePath
fp Vector ByteString -> IO row
f =
Delimiter
-> FilePath
-> (Vector ByteString -> IO row)
-> m (ParseStop, Vector row)
forall (m :: * -> *) row.
MonadIO m =>
Delimiter
-> FilePath
-> (Vector ByteString -> IO row)
-> m (ParseStop, Vector row)
mapDsvFileStrictWithoutHeader Delimiter
comma FilePath
fp Vector ByteString -> IO row
f
mapCsvFileStrictIgnoringHeader ::
forall m row .
MonadIO m
=> FilePath
-> (Vector ByteString -> IO row)
-> m (ParseStop, Vector row)
FilePath
fp Vector ByteString -> IO row
f =
Delimiter
-> FilePath
-> (Vector ByteString -> IO row)
-> m (ParseStop, Vector row)
forall (m :: * -> *) row.
MonadIO m =>
Delimiter
-> FilePath
-> (Vector ByteString -> IO row)
-> m (ParseStop, Vector row)
mapDsvFileStrictIgnoringHeader Delimiter
comma FilePath
fp Vector ByteString -> IO row
f
mapCsvFileStrictUsingHeader ::
forall m row .
MonadIO m
=> FilePath
-> (Vector ByteString -> IO (Vector ByteString -> IO row))
-> m (ParseStop, Vector row)
FilePath
fp Vector ByteString -> IO (Vector ByteString -> IO row)
f =
Delimiter
-> FilePath
-> (Vector ByteString -> IO (Vector ByteString -> IO row))
-> m (ParseStop, Vector row)
forall (m :: * -> *) row.
MonadIO m =>
Delimiter
-> FilePath
-> (Vector ByteString -> IO (Vector ByteString -> IO row))
-> m (ParseStop, Vector row)
mapDsvFileStrictUsingHeader Delimiter
comma FilePath
fp Vector ByteString -> IO (Vector ByteString -> IO row)
f