Skip to content

Commit 2113cfa

Browse files
committed
Removes export of Conversion, not needed now. Adds example of explicit decode.
1 parent a1e9f15 commit 2113cfa

File tree

4 files changed

+32
-2
lines changed

4 files changed

+32
-2
lines changed

Data/Csv/Encoding.hs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ import Data.Csv.Conversion (FromNamedRecord, FromRecord, ToNamedRecord,
5959
ToRecord, parseNamedRecord, parseRecord, runParser,
6060
toNamedRecord, toRecord)
6161
import Data.Csv.Parser hiding (csv, csvWithHeader)
62-
import qualified Data.Csv.Conversion as Conversion
6362
import qualified Data.Csv.Parser as Parser
6463
import Data.Csv.Types hiding (toNamedRecord)
6564
import qualified Data.Csv.Types as Types

cassava.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,9 @@ Library
8383
Data.Csv.Incremental
8484
Data.Csv.Parser
8585
Data.Csv.Streaming
86-
Data.Csv.Conversion
8786

8887
Other-modules:
88+
Data.Csv.Conversion
8989
Data.Csv.Conversion.Internal
9090
Data.Csv.Encoding
9191
Data.Csv.Types
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{-# LANGUAGE OverloadedStrings #-}
2+
3+
import qualified Data.ByteString.Lazy as BL
4+
import Data.Csv
5+
import qualified Data.Vector as V
6+
7+
data Person = Person
8+
{ name :: String
9+
, salary :: Int
10+
}
11+
12+
valueParse :: NamedRecord -> Parser Person
13+
valueParse r = Person <$> r .: "name" <*> r .: "salary"
14+
15+
main :: IO ()
16+
main = do
17+
csvData <- BL.readFile "salaries.csv"
18+
case decodeByNameWithP valueParse defaultDecodeOptions csvData of
19+
Left err -> putStrLn err
20+
Right (_, v) -> V.forM_ v $ \ p ->
21+
putStrLn $ name p ++ " earns " ++ show (salary p) ++ " dollars"

examples/cassava-examples.cabal

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,16 @@ executable NamedBasedDecode
4242
vector
4343
default-language: Haskell2010
4444

45+
executable NamedBasedExplicitDecode
46+
main-is: NamedBasedExplicitDecode.hs
47+
build-depends:
48+
base,
49+
bytestring,
50+
cassava,
51+
vector
52+
default-language: Haskell2010
53+
54+
4555
executable NamedBasedGeneric
4656
main-is: NamedBasedGeneric.hs
4757
build-depends:

0 commit comments

Comments
 (0)