From 63f82c9f56e679940f24dd5bdaea6f68ca91b6ba Mon Sep 17 00:00:00 2001 From: Alice BRENON <alice.brenon@ens-lyon.fr> Date: Wed, 20 Sep 2023 22:39:50 +0200 Subject: [PATCH] Factorise and expose TSV option decoder to client code --- lib/GEODE/Metadata/TSV.hs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/GEODE/Metadata/TSV.hs b/lib/GEODE/Metadata/TSV.hs index 0b5c671..26fd950 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 -- GitLab