billstclair / elm-websocket-framework / WebSocketFramework.EncodeDecode

The EncodeDecode module handles translation of strings sent over the wire to and from your message types.

High-level functions

Your WebSocket subscription message handler will need to use decodeMessage, you will often use genericMessageDecoder, and, if you track statistics, you'll likely need the statistics encoder & decoder, but you'll rarely directly use the rest of the functions in this module.

decodeMessage : WebSocketFramework.Types.MessageDecoder message -> String -> Result String message

Use a MessageDecoder that you write to turn a string into a message.

genericMessageDecoder : WebSocketFramework.Types.DecoderPlist msg -> WebSocketFramework.Types.DecoderPlist msg -> ( WebSocketFramework.Types.ReqRsp, WebSocketFramework.Types.Plist ) -> Result String msg

Simplify the writing of MessageDecoder definitions.

Takes two plists mapping request names to decoders and response names to decoders.

Returns a MessageDecoder that uses them.

encodeMessage : WebSocketFramework.Types.MessageEncoder message -> message -> String

Use a MessageEncoder that you write to turn a message into a string.

messageDecoder : WebSocketFramework.Types.MessageDecoder message -> Json.Decode.Decoder message

Create a Decoder for decodeMessage.

messageEncoder : WebSocketFramework.Types.MessageEncoder message -> message -> Json.Encode.Value

Use a MessageEncoder that you write to turn a message into a Value.

Rarely used by anything but encodeMessage.

encodeStatistics : WebSocketFramework.Types.Statistics -> Json.Encode.Value

Encode a Statistics record.

statisticsDecoder : Json.Decode.Decoder WebSocketFramework.Types.Statistics

Decoder for the Statistics record.

Low-level functions

decodeRawMessage : String -> Result String WebSocketFramework.Types.RawMessage

Turn a string into a raw message.

rawMessageDecoder : Json.Decode.Decoder WebSocketFramework.Types.RawMessage

The Decoder used by decodeRawMessage

rawMessageEncoder : WebSocketFramework.Types.RawMessage -> Json.Encode.Value

Turn a raw message into a Value.

decodePlist : Json.Decode.Decoder message -> WebSocketFramework.Types.Plist -> Result String message

Decode a list of key/value pairs into a message.