thrift-lib-0.1.0.1: gen-hs2/Thrift/Protocol/RpcOptions/Types.hs
-----------------------------------------------------------------
-- Autogenerated by Thrift
--
-- DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
-- @generated
-----------------------------------------------------------------
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE BangPatterns #-}
{-# OPTIONS_GHC -fno-warn-unused-imports#-}
{-# OPTIONS_GHC -fno-warn-overlapping-patterns#-}
{-# OPTIONS_GHC -fno-warn-incomplete-patterns#-}
{-# OPTIONS_GHC -fno-warn-incomplete-uni-patterns#-}
{-# OPTIONS_GHC -fno-warn-incomplete-record-updates#-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Thrift.Protocol.RpcOptions.Types
(Priority(HighImportant, High, Important, NormalPriority,
BestEffort, Priority__UNKNOWN),
RpcOptions(RpcOptions, rpc_timeout, rpc_priority, rpc_chunkTimeout,
rpc_queueTimeout, rpc_headers))
where
import qualified Control.DeepSeq as DeepSeq
import qualified Control.Exception as Exception
import qualified Control.Monad as Monad
import qualified Control.Monad.ST.Trans as ST
import qualified Control.Monad.Trans.Class as Trans
import qualified Data.Aeson as Aeson
import qualified Data.Aeson.Types as Aeson
import qualified Data.Default as Default
import qualified Data.Function as Function
import qualified Data.HashMap.Strict as HashMap
import qualified Data.Hashable as Hashable
import qualified Data.Int as Int
import qualified Data.List as List
import qualified Data.Map.Strict as Map
import qualified Data.Ord as Ord
import qualified Data.Text as Text
import qualified Data.Text.Encoding as Text
import qualified GHC.Magic as GHC
import qualified Prelude as Prelude
import qualified Thrift.Binary.Parser as Parser
import qualified Thrift.CodegenTypesOnly as Thrift
import Control.Applicative ((<|>), (*>), (<*))
import Data.Aeson ((.:), (.:?), (.=), (.!=))
import Data.Monoid ((<>))
import Prelude ((.), (++), (>), (==))
import Prelude ((.), (<$>), (<*>), (>>=), (==), (/=), (<), (++))
data Priority = HighImportant
| High
| Important
| NormalPriority
| BestEffort
| Priority__UNKNOWN Prelude.Int
deriving (Prelude.Eq, Prelude.Show, Prelude.Ord)
instance Aeson.ToJSON Priority where
toJSON = Aeson.toJSON . Thrift.fromThriftEnum
instance DeepSeq.NFData Priority where
rnf __Priority = Prelude.seq __Priority ()
instance Default.Default Priority where
def = HighImportant
instance Hashable.Hashable Priority where
hashWithSalt _salt _val
= Hashable.hashWithSalt _salt (Thrift.fromThriftEnum _val)
instance Thrift.ThriftEnum Priority where
toThriftEnum 0 = HighImportant
toThriftEnum 1 = High
toThriftEnum 2 = Important
toThriftEnum 3 = NormalPriority
toThriftEnum 4 = BestEffort
toThriftEnum val = Priority__UNKNOWN val
fromThriftEnum HighImportant = 0
fromThriftEnum High = 1
fromThriftEnum Important = 2
fromThriftEnum NormalPriority = 3
fromThriftEnum BestEffort = 4
fromThriftEnum (Priority__UNKNOWN val) = val
allThriftEnumValues
= [HighImportant, High, Important, NormalPriority, BestEffort]
toThriftEnumEither 0 = Prelude.Right HighImportant
toThriftEnumEither 1 = Prelude.Right High
toThriftEnumEither 2 = Prelude.Right Important
toThriftEnumEither 3 = Prelude.Right NormalPriority
toThriftEnumEither 4 = Prelude.Right BestEffort
toThriftEnumEither val
= Prelude.Left
("toThriftEnumEither: not a valid identifier for enum Priority: "
++ Prelude.show val)
data RpcOptions = RpcOptions{rpc_timeout :: Int.Int32,
rpc_priority :: Prelude.Maybe Priority,
rpc_chunkTimeout :: Int.Int32, rpc_queueTimeout :: Int.Int32,
rpc_headers :: Prelude.Maybe (Map.Map Text.Text Text.Text)}
deriving (Prelude.Eq, Prelude.Show, Prelude.Ord)
instance Aeson.ToJSON RpcOptions where
toJSON
(RpcOptions __field__timeout __field__priority
__field__chunkTimeout __field__queueTimeout __field__headers)
= Aeson.object
("timeout" .= __field__timeout :
Prelude.maybe Prelude.id ((:) . ("priority" .=)) __field__priority
("chunkTimeout" .= __field__chunkTimeout :
"queueTimeout" .= __field__queueTimeout :
Prelude.maybe Prelude.id ((:) . ("headers" .=)) __field__headers
Prelude.mempty))
instance Thrift.ThriftStruct RpcOptions where
buildStruct _proxy
(RpcOptions __field__timeout __field__priority
__field__chunkTimeout __field__queueTimeout __field__headers)
= Thrift.genStruct _proxy
(Thrift.genFieldPrim _proxy "timeout" (Thrift.getI32Type _proxy) 1
0
(Thrift.genI32Prim _proxy)
__field__timeout
:
let (__cereal__priority, __id__priority)
= case __field__priority of
Prelude.Just _val -> ((:)
(Thrift.genField _proxy "priority"
(Thrift.getI32Type _proxy)
2
1
((Thrift.genI32 _proxy . Prelude.fromIntegral .
Thrift.fromThriftEnum)
_val)),
2)
Prelude.Nothing -> (Prelude.id, 1)
in
__cereal__priority
(Thrift.genFieldPrim _proxy "chunkTimeout"
(Thrift.getI32Type _proxy)
3
__id__priority
(Thrift.genI32Prim _proxy)
__field__chunkTimeout
:
Thrift.genFieldPrim _proxy "queueTimeout"
(Thrift.getI32Type _proxy)
4
3
(Thrift.genI32Prim _proxy)
__field__queueTimeout
:
case __field__headers of
Prelude.Just _val -> Thrift.genField _proxy "headers"
(Thrift.getMapType _proxy)
5
4
((Thrift.genMap _proxy (Thrift.getStringType _proxy)
(Thrift.getStringType _proxy)
Prelude.True
(Thrift.genText _proxy)
(Thrift.genText _proxy)
. Map.toList)
_val)
: []
Prelude.Nothing -> []))
parseStruct _proxy
= ST.runSTT
(do Prelude.return ()
__field__timeout <- ST.newSTRef Default.def
__field__priority <- ST.newSTRef Prelude.Nothing
__field__chunkTimeout <- ST.newSTRef Default.def
__field__queueTimeout <- ST.newSTRef Default.def
__field__headers <- ST.newSTRef Prelude.Nothing
let
_parse _lastId
= do _fieldBegin <- Trans.lift
(Thrift.parseFieldBegin _proxy _lastId _idMap)
case _fieldBegin of
Thrift.FieldBegin _type _id _bool -> do case _id of
1 | _type ==
Thrift.getI32Type _proxy
->
do !_val <- Trans.lift
(Thrift.parseI32
_proxy)
ST.writeSTRef
__field__timeout
_val
2 | _type ==
Thrift.getI32Type _proxy
->
do !_val <- Trans.lift
(Thrift.parseEnum
_proxy
"Priority")
ST.writeSTRef
__field__priority
(Prelude.Just _val)
3 | _type ==
Thrift.getI32Type _proxy
->
do !_val <- Trans.lift
(Thrift.parseI32
_proxy)
ST.writeSTRef
__field__chunkTimeout
_val
4 | _type ==
Thrift.getI32Type _proxy
->
do !_val <- Trans.lift
(Thrift.parseI32
_proxy)
ST.writeSTRef
__field__queueTimeout
_val
5 | _type ==
Thrift.getMapType _proxy
->
do !_val <- Trans.lift
(Map.fromList <$>
Thrift.parseMap
_proxy
(Thrift.parseText
_proxy)
(Thrift.parseText
_proxy)
Prelude.True)
ST.writeSTRef
__field__headers
(Prelude.Just _val)
_ -> Trans.lift
(Thrift.parseSkip _proxy
_type
(Prelude.Just _bool))
_parse _id
Thrift.FieldEnd -> do !__val__timeout <- ST.readSTRef
__field__timeout
!__val__priority <- ST.readSTRef __field__priority
!__val__chunkTimeout <- ST.readSTRef
__field__chunkTimeout
!__val__queueTimeout <- ST.readSTRef
__field__queueTimeout
!__val__headers <- ST.readSTRef __field__headers
Prelude.pure
(RpcOptions __val__timeout __val__priority
__val__chunkTimeout
__val__queueTimeout
__val__headers)
_idMap
= HashMap.fromList
[("timeout", 1), ("priority", 2), ("chunkTimeout", 3),
("queueTimeout", 4), ("headers", 5)]
_parse 0)
instance DeepSeq.NFData RpcOptions where
rnf
(RpcOptions __field__timeout __field__priority
__field__chunkTimeout __field__queueTimeout __field__headers)
= DeepSeq.rnf __field__timeout `Prelude.seq`
DeepSeq.rnf __field__priority `Prelude.seq`
DeepSeq.rnf __field__chunkTimeout `Prelude.seq`
DeepSeq.rnf __field__queueTimeout `Prelude.seq`
DeepSeq.rnf __field__headers `Prelude.seq` ()
instance Default.Default RpcOptions where
def
= RpcOptions Default.def Prelude.Nothing Default.def Default.def
Prelude.Nothing
instance Hashable.Hashable RpcOptions where
hashWithSalt __salt
(RpcOptions _timeout _priority _chunkTimeout _queueTimeout
_headers)
= Hashable.hashWithSalt
(Hashable.hashWithSalt
(Hashable.hashWithSalt
(Hashable.hashWithSalt (Hashable.hashWithSalt __salt _timeout)
_priority)
_chunkTimeout)
_queueTimeout)
(Prelude.fmap
(Prelude.map (\ (_k, _v) -> (_k, _v)) . Map.toAscList)
_headers)