From 9c52669ffde25a15066df74666fd2d8eb0bf0438 Mon Sep 17 00:00:00 2001 From: joe Date: Sat, 13 Jul 2013 18:38:08 -0400 Subject: refactored, more layering --- Presence/XMLToByteStrings.hs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'Presence/XMLToByteStrings.hs') diff --git a/Presence/XMLToByteStrings.hs b/Presence/XMLToByteStrings.hs index d8d2e965..92ac05cd 100644 --- a/Presence/XMLToByteStrings.hs +++ b/Presence/XMLToByteStrings.hs @@ -1,5 +1,7 @@ {-# LANGUAGE CPP #-} -module XMLToByteStrings (xmlToByteStrings) where +module XMLToByteStrings + ( xmlToByteStrings + , prettyPrint ) where import Control.Monad.IO.Class import Control.Monad.Trans.Class @@ -8,13 +10,15 @@ import Control.Monad.Fix import Control.Monad (when) import Data.Conduit import qualified Data.Conduit.List as CL +import qualified Data.Conduit.Binary as CB import Data.XML.Types as XML (Event) -import qualified Data.ByteString as S (ByteString) +import qualified Data.ByteString as S (ByteString,append) +import qualified Data.ByteString.Char8 as S (putStrLn) #ifdef RENDERFLUSH import Data.Conduit.Blaze (builderToByteStringFlush) -import Text.XML.Stream.Render (def,renderBuilderFlush) +import Text.XML.Stream.Render (def,renderBuilderFlush,renderBytes,rsPretty) #else -import Text.XML.Stream.Render (def,renderBytes) +import Text.XML.Stream.Render (def,renderBytes,rsPretty) #endif fixMaybeT f = (>> return ()) . runMaybeT . fix $ f @@ -62,3 +66,7 @@ renderChunks = fixMaybeT $ \loop -> do loop #endif + +prettyPrint prefix xs = + liftIO $ do + CL.sourceList xs $= renderBytes (def { rsPretty=True }) =$= CB.lines $$ CL.mapM_ (S.putStrLn . (prefix `S.append`)) -- cgit v1.2.3