packages feed

epub-metadata-5.3: src/lib/Codec/Epub/Format/Util.hs

{-# LANGUAGE FlexibleContexts #-}

-- | Utility functions shared by several formatting modules
module Codec.Epub.Format.Util
   ( formatSubline
   , tellSeq
   , Seq
   )
   where

import Control.Monad.Writer.Lazy ( MonadWriter, tell )
import Data.Sequence ( Seq, fromList )
import Text.Printf ( printf )


formatSubline :: String -> Maybe String -> String
formatSubline _   Nothing = ""
formatSubline key (Just value) = printf "  %s: %s\n" key value


tellSeq :: MonadWriter (Seq a) m => [a] -> m ()
tellSeq = tell . fromList