Safe Haskell | None |
---|---|
Language | Haskell2010 |
Functions for encoding and decoding protocol buffer Messages.
TODO: Currently all operations are on strict ByteStrings; we should try to generalize to lazy Bytestrings as well.
- encodeMessage :: Message msg => msg -> ByteString
- buildMessage :: Message msg => msg -> Builder
- buildMessageDelimited :: Message msg => msg -> Builder
- decodeMessage :: Message msg => ByteString -> Either String msg
- decodeMessageOrDie :: Message msg => ByteString -> msg
Documentation
encodeMessage :: Message msg => msg -> ByteString Source #
Encode a message to the wire format as a strict ByteString
.
buildMessage :: Message msg => msg -> Builder Source #
Encode a message to the wire format, as part of a Builder
.
buildMessageDelimited :: Message msg => msg -> Builder Source #
Encode a message to the wire format, prefixed by its size as a VarInt,
as part of a Builder
.
This can be used to build up streams of messages in the size-delimited format expected by some protocols.
decodeMessage :: Message msg => ByteString -> Either String msg Source #
Decode a message from its wire format. Returns Left
if the decoding
fails.
decodeMessageOrDie :: Message msg => ByteString -> msg Source #
Decode a message from its wire format. Throws an error if the decoding fails.