module Network.WebSockets.Protocol.Unsafe
( castMessage
, close
, ping
, pong
, textData
, binaryData
) where
import Network.WebSockets.Types
castMessage :: Message p1 -> Message p2
castMessage (ControlMessage m) = ControlMessage $ case m of
Close b -> Close b
Ping b -> Ping b
Pong b -> Pong b
castMessage (DataMessage m) = DataMessage $ case m of
Text b -> Text b
Binary b -> Binary b
close :: WebSocketsData a => a -> Message p
close = ControlMessage . Close . toLazyByteString
ping :: WebSocketsData a => a -> Message p
ping = ControlMessage . Ping . toLazyByteString
pong :: WebSocketsData a => a -> Message p
pong = ControlMessage . Pong . toLazyByteString
textData :: WebSocketsData a => a -> Message p
textData = DataMessage . Text . toLazyByteString
binaryData :: WebSocketsData a => a -> Message p
binaryData = DataMessage . Binary . toLazyByteString