, mkDefaultPage
)
where
-import qualified Blaze.ByteString.Builder.ByteString as BB
+import qualified Blaze.ByteString.Builder.Char.Utf8 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 Data.Text (Text)
import qualified Data.Text as T
-import Data.Text.Encoding
+import qualified Data.Text.Lazy 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
-- Content-Type が正しくなければ補完できない。
- = do res ← readItr itrResponse id itr
+ = do res ← readItr itrResponse itr
when (getHeader "Content-Type" res == Just defaultPageContentType)
- $ do reqM ← readItr itrRequest id itr
+ $ do reqM ← readItr itrRequest itr
let conf = itrConfig itr
page = getDefaultPage conf reqM res
- putTMVar (itrBodyToSend itr)
- (BB.fromByteString $ encodeUtf8 page)
+ putTMVar (itrBodyToSend itr) (BB.fromLazyText page)
mkDefaultPage ∷ (ArrowXml a) ⇒ Config → StatusCode → a b XmlTree → a b XmlTree
{-# INLINEABLE mkDefaultPage #-}