{-# LANGUAGE ScopedTypeVariables, DeriveDataTypeable, OverloadedStrings, DeriveGeneric #-} module Data.Bond.Schema.TypeDef (TypeDef(..)) where import qualified Data.Bond.Internal.Imports as B' import qualified Prelude as P' import qualified Data.Bond.Schema.BondDataType import qualified GHC.Generics as P' data TypeDef = TypeDef{id :: Data.Bond.Schema.BondDataType.BondDataType, struct_def :: B'.Word16, element :: B'.Maybe Data.Bond.Schema.TypeDef.TypeDef, key :: B'.Maybe Data.Bond.Schema.TypeDef.TypeDef, bonded_type :: B'.Bool} deriving (P'.Generic, P'.Show, P'.Eq, B'.Typeable) instance B'.Default TypeDef where defaultValue = TypeDef{id = Data.Bond.Schema.BondDataType.bT_STRUCT, struct_def = 0, element = B'.defaultValue, key = B'.defaultValue, bonded_type = B'.defaultValue} instance B'.BondType TypeDef where bondGet = B'.bondGetStruct bondPut = B'.bondPutStruct getName _ = "TypeDef" getQualifiedName _ = "bond.TypeDef" getElementType type'proxy = B'.ElementStruct (B'.getSchema type'proxy) instance B'.BondStruct TypeDef where bondStructPut self' = do B'.bondPutField (B'.Proxy :: B'.Proxy TypeDef) (B'.Ordinal 0) (id self') B'.bondPutField (B'.Proxy :: B'.Proxy TypeDef) (B'.Ordinal 1) (struct_def self') B'.bondPutField (B'.Proxy :: B'.Proxy TypeDef) (B'.Ordinal 2) (element self') B'.bondPutField (B'.Proxy :: B'.Proxy TypeDef) (B'.Ordinal 3) (key self') B'.bondPutField (B'.Proxy :: B'.Proxy TypeDef) (B'.Ordinal 4) (bonded_type self') bondStructGetUntagged = P'.return TypeDef `B'.ap` B'.bondGet `B'.ap` B'.bondGet `B'.ap` B'.bondGetNullable `B'.ap` B'.bondGetNullable `B'.ap` B'.bondGet bondStructGetBase self' = P'.return self' bondStructGetField (B'.Ordinal 0) self' = do field'val <- B'.bondGet P'.return self'{id = field'val} bondStructGetField (B'.Ordinal 1) self' = do field'val <- B'.bondGet P'.return self'{struct_def = field'val} bondStructGetField (B'.Ordinal 2) self' = do field'val <- B'.bondGet P'.return self'{element = field'val} bondStructGetField (B'.Ordinal 3) self' = do field'val <- B'.bondGet P'.return self'{key = field'val} bondStructGetField (B'.Ordinal 4) self' = do field'val <- B'.bondGet P'.return self'{bonded_type = field'val} bondStructGetField _ _ = P'.error "unknown field ordinal" getSchema type'proxy = B'.StructSchema{B'.structTag = B'.typeRep type'proxy, B'.structName = B'.getName type'proxy, B'.structQualifiedName = B'.getQualifiedName type'proxy, B'.structAttrs = B'.makeMap [], B'.structBase = P'.Nothing, B'.structFields = B'.makeMap [(B'.Ordinal 0, B'.FieldSchema{B'.fieldName = "id", B'.fieldAttrs = B'.makeMap [], B'.fieldModifier = B'.FieldOptional, B'.fieldType = B'.FieldInt32 (B'.DefaultValue (P'.fromIntegral (P'.fromEnum (id (B'.defaultValue `B'.asProxyTypeOf` type'proxy)))))}), (B'.Ordinal 1, B'.FieldSchema{B'.fieldName = "struct_def", B'.fieldAttrs = B'.makeMap [], B'.fieldModifier = B'.FieldOptional, B'.fieldType = B'.FieldUInt16 (B'.DefaultValue (struct_def (B'.defaultValue `B'.asProxyTypeOf` type'proxy)))}), (B'.Ordinal 2, B'.FieldSchema{B'.fieldName = "element", B'.fieldAttrs = B'.makeMap [], B'.fieldModifier = B'.FieldOptional, B'.fieldType = B'.elementToFieldType (B'.getElementType (B'.Proxy :: B'.Proxy (B'.Maybe Data.Bond.Schema.TypeDef.TypeDef)))}), (B'.Ordinal 3, B'.FieldSchema{B'.fieldName = "key", B'.fieldAttrs = B'.makeMap [], B'.fieldModifier = B'.FieldOptional, B'.fieldType = B'.elementToFieldType (B'.getElementType (B'.Proxy :: B'.Proxy (B'.Maybe Data.Bond.Schema.TypeDef.TypeDef)))}), (B'.Ordinal 4, B'.FieldSchema{B'.fieldName = "bonded_type", B'.fieldAttrs = B'.makeMap [], B'.fieldModifier = B'.FieldOptional, B'.fieldType = B'.FieldBool (B'.DefaultValue (bonded_type (B'.defaultValue `B'.asProxyTypeOf` type'proxy)))})], B'.structRequiredOrdinals = B'.fromOrdinalList []} instance B'.NFData TypeDef