protobuf-simple-0.1.0.0: src/Data/ProtoBuf/WireMessage.hs
-- |
-- Module: Data.ProtoBuf.WireMessage
-- Copyright: (c) 2015-2016 Martijn Rijkeboer <mrr@sru-systems.com>
-- License: MIT
-- Maintainer: Martijn Rijkeboer <mrr@sru-systems.com>
--
-- WireMessage typeclass.
module Data.ProtoBuf.WireMessage
( WireMessage(..)
) where
import Data.Binary.Get (Get)
import Data.Binary.Put (Put)
import Data.ProtoBuf.WireTag (WireTag)
-- | Typeclass to handle encoding and decoding of messages.
class WireMessage a where
-- | Decode a field and merge it with the existing value in the message.
fieldToValue :: WireTag -> a -> Get a
-- | Encode all the fields of the message.
messageToFields :: a -> Put