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