, mkDefaultPage
)
where
+import qualified Blaze.ByteString.Builder.ByteString as BB
import Control.Arrow
import Control.Arrow.ArrowList
import Control.Arrow.ListArrow
import Control.Monad
import qualified Data.Ascii as A
import Data.Maybe
-import qualified Data.Sequence as S
-import Data.Text (Text)
import qualified Data.Text as T
-import Data.Text.Encoding
+import qualified Data.Text.Lazy as Lazy
+import qualified Data.Text.Lazy.Encoding as Lazy
import Network.HTTP.Lucu.Config
import Network.HTTP.Lucu.Headers
import Network.HTTP.Lucu.Interaction
import Text.XML.HXT.Arrow.XmlState
import Text.XML.HXT.DOM.TypeDefs
-getDefaultPage ∷ Config → Maybe Request → Response → Text
+getDefaultPage ∷ Config → Maybe Request → Response → Lazy.Text
{-# INLINEABLE getDefaultPage #-}
getDefaultPage !conf !req !res
= let msgA = getMsg req res
writeDocumentToString [ withIndent True ]
) ()
in
- T.pack xmlStr
+ Lazy.pack xmlStr
writeDefaultPage ∷ Interaction → STM ()
writeDefaultPage !itr
let conf = itrConfig itr
page = getDefaultPage conf reqM res
- writeTVar (itrBodyToSend itr)
- (S.singleton (encodeUtf8 page))
+ putTMVar (itrBodyToSend itr)
+ (BB.fromLazyByteString $ Lazy.encodeUtf8 page)
mkDefaultPage ∷ (ArrowXml a) ⇒ Config → StatusCode → a b XmlTree → a b XmlTree
{-# INLINEABLE mkDefaultPage #-}
mkDefaultPage !conf !status !msgA
- = let sStr = A.toString $ printStatusCode status
+ = let sStr = A.toString $ A.fromAsciiBuilder $ printStatusCode status
sig = concat [ A.toString (cnfServerSoftware conf)
, " at "
, T.unpack (cnfServerHost conf)