{-# LANGUAGE DeriveGeneric #-}
module Network.MessagePack.Capabilities
  ( ServerCapability (..)
  , ClientCapability (..)
  ) where

import           Data.MessagePack (MessagePack)
import           GHC.Generics     (Generic)


data ServerCapability
  = SCapMethodList
    -- ^ Server supports method lists and can handle more efficient method codes
    -- instead of strings for names. It supports the "internal.methodList" call
    -- to return an ordered list of method names. The client can send an index
    -- in this list instead of the name itself when performing an RPC call.
  deriving (Eq, Generic)

instance MessagePack ServerCapability


data ClientCapability
  = CCapMethodList
    -- ^ Client supports method lists and can send more efficient method codes
    -- instead of strings for names.
  deriving (Eq, Generic)

instance MessagePack ClientCapability