{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE ScopedTypeVariables #-}
module DSV.FileFoldCsv
( foldCsvFileWithoutHeader, foldCsvFileWithoutHeaderM
, foldCsvFileIgnoringHeader, foldCsvFileIgnoringHeaderM
, foldCsvFileWithZippedHeader, foldCsvFileWithZippedHeaderM
) where
import DSV.ByteString
import DSV.CommonDelimiters
import DSV.FileFold
import DSV.Fold
import DSV.IO
import DSV.NumberViews
import DSV.ParseStop
import DSV.Prelude
import DSV.Vector
import DSV.VectorViews
import DSV.ViewType
import Data.Foldable (traverse_)
import Data.Maybe (fromMaybe)
import qualified Data.ByteString.Char8 as BS
import qualified Control.Foldl as L
foldCsvFileWithoutHeader ::
forall m result .
MonadIO m
=> FilePath
-> Fold (Vector ByteString) result
-> m (ParseStop, result)
FilePath
fp Fold (Vector ByteString) result
fld =
Delimiter
-> FilePath
-> Fold (Vector ByteString) result
-> m (ParseStop, result)
forall (m :: * -> *) result.
MonadIO m =>
Delimiter
-> FilePath
-> Fold (Vector ByteString) result
-> m (ParseStop, result)
foldDsvFileWithoutHeader Delimiter
comma FilePath
fp Fold (Vector ByteString) result
fld
foldCsvFileWithoutHeaderM ::
forall m result .
(MonadCatch m, MonadMask m, MonadIO m)
=> FilePath
-> FoldM m (Vector ByteString) result
-> m (ParseStop, result)
FilePath
fp FoldM m (Vector ByteString) result
fld =
Delimiter
-> FilePath
-> FoldM m (Vector ByteString) result
-> m (ParseStop, result)
forall (m :: * -> *) result.
(MonadCatch m, MonadMask m, MonadIO m) =>
Delimiter
-> FilePath
-> FoldM m (Vector ByteString) result
-> m (ParseStop, result)
foldDsvFileWithoutHeaderM Delimiter
comma FilePath
fp FoldM m (Vector ByteString) result
fld
foldCsvFileIgnoringHeader ::
forall m result .
MonadIO m
=> FilePath
-> Fold (Vector ByteString) result
-> m (ParseStop, result)
FilePath
fp Fold (Vector ByteString) result
fld =
Delimiter
-> FilePath
-> Fold (Vector ByteString) result
-> m (ParseStop, result)
forall (m :: * -> *) result.
MonadIO m =>
Delimiter
-> FilePath
-> Fold (Vector ByteString) result
-> m (ParseStop, result)
foldDsvFileIgnoringHeader Delimiter
comma FilePath
fp Fold (Vector ByteString) result
fld
foldCsvFileIgnoringHeaderM ::
forall m result .
(MonadCatch m, MonadMask m, MonadIO m)
=> FilePath
-> FoldM m (Vector ByteString) result
-> m (ParseStop, result)
FilePath
fp FoldM m (Vector ByteString) result
fld =
Delimiter
-> FilePath
-> FoldM m (Vector ByteString) result
-> m (ParseStop, result)
forall (m :: * -> *) result.
(MonadCatch m, MonadMask m, MonadIO m) =>
Delimiter
-> FilePath
-> FoldM m (Vector ByteString) result
-> m (ParseStop, result)
foldDsvFileIgnoringHeaderM Delimiter
comma FilePath
fp FoldM m (Vector ByteString) result
fld
foldCsvFileWithZippedHeader ::
forall m result .
MonadIO m
=> FilePath
-> Fold (Vector (ByteString, ByteString)) result
-> m (ParseStop, result)
FilePath
fp Fold (Vector (ByteString, ByteString)) result
fld =
Delimiter
-> FilePath
-> Fold (Vector (ByteString, ByteString)) result
-> m (ParseStop, result)
forall (m :: * -> *) result.
MonadIO m =>
Delimiter
-> FilePath
-> Fold (Vector (ByteString, ByteString)) result
-> m (ParseStop, result)
foldDsvFileWithZippedHeader Delimiter
comma FilePath
fp Fold (Vector (ByteString, ByteString)) result
fld
foldCsvFileWithZippedHeaderM ::
forall m result .
(MonadCatch m, MonadMask m, MonadIO m)
=> FilePath
-> FoldM m (Vector (ByteString, ByteString)) result
-> m (ParseStop, result)
FilePath
fp FoldM m (Vector (ByteString, ByteString)) result
fld =
Delimiter
-> FilePath
-> FoldM m (Vector (ByteString, ByteString)) result
-> m (ParseStop, result)
forall (m :: * -> *) result.
(MonadCatch m, MonadMask m, MonadIO m) =>
Delimiter
-> FilePath
-> FoldM m (Vector (ByteString, ByteString)) result
-> m (ParseStop, result)
foldDsvFileWithZippedHeaderM Delimiter
comma FilePath
fp FoldM m (Vector (ByteString, ByteString)) result
fld