From ebd1bd466cdbba452a6be469a2a33b1a2527a019 Mon Sep 17 00:00:00 2001 From: Alexey Khudyakov Date: Wed, 2 Jan 2013 17:24:21 +0400 Subject: [PATCH] Add FromField instance for () --- Data/Csv.hs | 10 +++++++++- Data/Csv/Conversion.hs | 5 +++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Data/Csv.hs b/Data/Csv.hs index ff9dac3..a43c7e9 100644 --- a/Data/Csv.hs +++ b/Data/Csv.hs @@ -143,7 +143,15 @@ import Data.Csv.Types -- > Left err -> putStrLn err -- > Right v -> forM_ v $ \ (Hex val1, Hex val2) -> -- > print (val1, val2) - +-- +-- In order to ignore column you can use unit type '()'. It always +-- successfully decode. Note that it lacks corresponding 'ToField' +-- instance. It serves as placeholder to indicate that there's +-- something in the column you don't care what. +-- +-- > case decode False "foo,1\r\nbar,22" of +-- > Left err -> putStrLn err +-- > Right v -> forM_ v $ \ ((), i) -> print (i :: Int) -- $encoding -- diff --git a/Data/Csv/Conversion.hs b/Data/Csv/Conversion.hs index 1e397cc..5664b7b 100644 --- a/Data/Csv/Conversion.hs +++ b/Data/Csv/Conversion.hs @@ -386,6 +386,11 @@ instance ToField a => ToField (Maybe a) where toField = maybe B.empty toField {-# INLINE toField #-} +-- | Could used to ignore column during decoding. +instance FromField () where + parseField _ = pure () + {-# INLINE parseField #-} + -- | Assumes UTF-8 encoding. instance FromField Char where parseField s