diff --git a/lib/GEODE/Metadata/TSV.hs b/lib/GEODE/Metadata/TSV.hs index 0b5c6719be8252a9c5def25060b80d57607a08ee..26fd95065192dbac8a4e5cbb6762ed6268d462ff 100644 --- a/lib/GEODE/Metadata/TSV.hs +++ b/lib/GEODE/Metadata/TSV.hs @@ -1,6 +1,7 @@ {-# LANGUAGE ScopedTypeVariables #-} module GEODE.Metadata.TSV - ( readNamedTsv + ( fromTsv + , readNamedTsv , readTsv , toTsv , tsvFile @@ -15,16 +16,15 @@ import Data.Foldable (toList) import Data.Vector (Vector) import GEODE.Metadata.TSV.Header (HasDefaultHeader, getHeader, for) +fromTsv :: DecodeOptions +fromTsv = DecodeOptions {decDelimiter = fromIntegral (fromEnum '\t')} + readNamedTsv :: FromNamedRecord a => FilePath -> IO (Either String (Vector a)) readNamedTsv source = (fmap snd . decodeByNameWith fromTsv) <$> ByteString.readFile source - where - fromTsv = DecodeOptions {decDelimiter = fromIntegral (fromEnum '\t')} readTsv :: FromRecord a => FilePath -> IO (Either String (Vector a)) readTsv source = decodeWith fromTsv NoHeader <$> ByteString.readFile source - where - fromTsv = DecodeOptions {decDelimiter = fromIntegral (fromEnum '\t')} toTsv :: EncodeOptions toTsv = defaultEncodeOptions