damnpacket-1.0.0: src/Network/Damn/Format/Damn.hs
{-# LANGUAGE OverloadedStrings #-}
module Network.Damn.Format.Damn (
damnFormat,
damnFormatBytes
) where
import Data.ByteString (ByteString)
import Data.Text.Encoding
import Network.Damn.Format.Base
import Network.Damn.Format.Damn.Internal
-- | @damnFormat@ is, essentially, a formatter that transforms a raw
-- dAmn message into the text that the sender typed into the dAmn web
-- client.
damnFormat :: Formatter Text
damnFormat = either id (decodeUtf8 . damnFormat')
-- | @encodeUtf8 . damnFormat@
--
-- This function is defined separately to avoid an encoding round-trip.
damnFormatBytes :: Formatter ByteString
damnFormatBytes = either encodeUtf8 damnFormat'