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 {-# INLINE castMessage #-} 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