@@ -11,11 +11,7 @@ module EventStream (
1111
1212import Blaze.ByteString.Builder
1313import Blaze.ByteString.Builder.Char8
14−import Control.Monad.Trans
15−import Control.Concurrent
1614import Data.Monoid
17−import Data.Enumerator hiding (map)
18−import Data.Enumerator.List (generateM)
1915
2016{-|
2117 Type representing a communication over an event stream. This can be an
@@ -40,12 +36,14 @@ data ServerEvent
4036{-|
4137 Newline as a Builder.
4238-}
39+nl :: Builder
4340nl = fromChar '\n'
4441
4542
4643{-|
4744 Field names as Builder
4845-}
46+nameField, idField, dataField, retryField, commentField :: Builder
4947nameField = fromString "event:"
5048idField = fromString "id:"
5149dataField = fromString "data:"
@@ -56,12 +54,14 @@ commentField = fromChar ':'
5654{-|
5755 Wraps the text as a labeled field of an event stream.
5856-}
57+field :: Builder -> Builder -> Builder
5958field l b = l `mappend` b `mappend` nl
6059
6160
6261{-|
6362 Appends a buffer flush to the end of a Builder.
6463-}
64+flushAfter :: Builder -> Builder
6565flushAfter b = b `mappend` flush
6666
6767
@@ -77,6 +77,6 @@ eventToBuilder (ServerEvent n i d)= Just $ flushAfter $
7777 (name n $ evid i $ mconcat (map (field dataField) d)) `mappend` nl
7878 where
7979 name Nothing = id
80− name (Just n) = mappend (field nameField n)
80+ name (Just n') = mappend (field nameField n')
8181 evid Nothing = id
82− evid (Just i) = mappend (field idField i)
82+ evid (Just i') = mappend (field idField i')