addressbook/src/Data/Email.hs

17 lines
468 B
Haskell
Raw Normal View History

2020-12-10 23:13:23 +02:00
{-# LANGUAGE TypeApplications #-}
2020-12-10 22:22:46 +02:00
module Data.Email where
import Data.Email.Header
import Conduit
import qualified Data.Conduit.Combinators as C
import qualified Data.Conduit.Text as CT
import Data.ByteString
(ByteString)
2020-12-10 23:13:23 +02:00
parseEmail :: (MonadUnliftIO m, MonadThrow m, Monad m) => ConduitM ByteString Header m ()
parseEmail = catchC (CT.decode CT.utf8) err .| CT.lines .| C.concatMap decode
where
err e = liftIO (print @CT.TextException e) >> yield ""