diff options
Diffstat (limited to 'KikiD/Message.hs')
-rw-r--r-- | KikiD/Message.hs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/KikiD/Message.hs b/KikiD/Message.hs new file mode 100644 index 0000000..c4903cc --- /dev/null +++ b/KikiD/Message.hs | |||
@@ -0,0 +1,18 @@ | |||
1 | module KikiD.Message where | ||
2 | |||
3 | import Data.Serialize | ||
4 | import qualified KikiD.GetLine | ||
5 | import qualified Data.ByteString.Char8 as B | ||
6 | import Data.Monoid | ||
7 | import Text.Read | ||
8 | |||
9 | data KikiDMessage = TODO deriving (Show,Read) | ||
10 | |||
11 | instance Serialize KikiDMessage where | ||
12 | put = putByteString . B.pack . show | ||
13 | get = do | ||
14 | x <- KikiD.GetLine.getLine | ||
15 | case (readEither (B.unpack x) :: Either String KikiDMessage) of | ||
16 | Right m -> return m | ||
17 | Left er -> fail ("PARSE ERROR: " <> er) | ||
18 | |||