-- Generated by protobuf-simple. DO NOT EDIT!
module Types.UInt64Msg where

import Control.Applicative ((<$>))
import Prelude ()
import qualified Data.ProtoBufInt as PB

newtype UInt64Msg = UInt64Msg
  { value :: PB.Word64
  } deriving (PB.Show, PB.Eq, PB.Ord)

instance PB.Default UInt64Msg where
  defaultVal = UInt64Msg
    { value = PB.defaultVal
    }

instance PB.Mergeable UInt64Msg where
  merge a b = UInt64Msg
    { value = PB.merge (value a) (value b)
    }

instance PB.Required UInt64Msg where
  reqTags _ = PB.fromList [PB.WireTag 1 PB.VarInt]

instance PB.WireMessage UInt64Msg where
  fieldToValue (PB.WireTag 1 PB.VarInt) self = (\v -> self{value = PB.merge (value self) v}) <$> PB.getUInt64
  fieldToValue tag self = PB.getUnknown tag self

  messageToFields self = do
    PB.putUInt64 (PB.WireTag 1 PB.VarInt) (value self)


