{- This file was auto-generated from tensorflow/core/framework/types.proto by the proto-lens-protoc program. -}
{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
  UndecidableInstances, MultiParamTypeClasses, FlexibleContexts,
  FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude
  #-}
{-# OPTIONS_GHC -fno-warn-unused-imports#-}
module Proto.Tensorflow.Core.Framework.Types where
import qualified Data.ProtoLens.Reexport.Prelude as Prelude
import qualified Data.ProtoLens.Reexport.Data.Int as Data.Int
import qualified Data.ProtoLens.Reexport.Data.Word as Data.Word
import qualified Data.ProtoLens.Reexport.Data.ProtoLens
       as Data.ProtoLens
import qualified
       Data.ProtoLens.Reexport.Data.ProtoLens.Message.Enum
       as Data.ProtoLens.Message.Enum
import qualified Data.ProtoLens.Reexport.Lens.Family2
       as Lens.Family2
import qualified Data.ProtoLens.Reexport.Lens.Family2.Unchecked
       as Lens.Family2.Unchecked
import qualified Data.ProtoLens.Reexport.Data.Default.Class
       as Data.Default.Class
import qualified Data.ProtoLens.Reexport.Data.Text as Data.Text
import qualified Data.ProtoLens.Reexport.Data.Map as Data.Map
import qualified Data.ProtoLens.Reexport.Data.ByteString
       as Data.ByteString
import qualified Data.ProtoLens.Reexport.Lens.Labels as Lens.Labels

data DataType = DT_INVALID
              | DT_FLOAT
              | DT_DOUBLE
              | DT_INT32
              | DT_UINT8
              | DT_INT16
              | DT_INT8
              | DT_STRING
              | DT_COMPLEX64
              | DT_INT64
              | DT_BOOL
              | DT_QINT8
              | DT_QUINT8
              | DT_QINT32
              | DT_BFLOAT16
              | DT_QINT16
              | DT_QUINT16
              | DT_UINT16
              | DT_COMPLEX128
              | DT_HALF
              | DT_RESOURCE
              | DT_VARIANT
              | DT_UINT32
              | DT_UINT64
              | DT_FLOAT_REF
              | DT_DOUBLE_REF
              | DT_INT32_REF
              | DT_UINT8_REF
              | DT_INT16_REF
              | DT_INT8_REF
              | DT_STRING_REF
              | DT_COMPLEX64_REF
              | DT_INT64_REF
              | DT_BOOL_REF
              | DT_QINT8_REF
              | DT_QUINT8_REF
              | DT_QINT32_REF
              | DT_BFLOAT16_REF
              | DT_QINT16_REF
              | DT_QUINT16_REF
              | DT_UINT16_REF
              | DT_COMPLEX128_REF
              | DT_HALF_REF
              | DT_RESOURCE_REF
              | DT_VARIANT_REF
              | DT_UINT32_REF
              | DT_UINT64_REF
              deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)

instance Data.Default.Class.Default DataType where
        def = DT_INVALID

instance Data.ProtoLens.FieldDefault DataType where
        fieldDefault = DT_INVALID

instance Data.ProtoLens.MessageEnum DataType where
        maybeToEnum 0 = Prelude.Just DT_INVALID
        maybeToEnum 1 = Prelude.Just DT_FLOAT
        maybeToEnum 2 = Prelude.Just DT_DOUBLE
        maybeToEnum 3 = Prelude.Just DT_INT32
        maybeToEnum 4 = Prelude.Just DT_UINT8
        maybeToEnum 5 = Prelude.Just DT_INT16
        maybeToEnum 6 = Prelude.Just DT_INT8
        maybeToEnum 7 = Prelude.Just DT_STRING
        maybeToEnum 8 = Prelude.Just DT_COMPLEX64
        maybeToEnum 9 = Prelude.Just DT_INT64
        maybeToEnum 10 = Prelude.Just DT_BOOL
        maybeToEnum 11 = Prelude.Just DT_QINT8
        maybeToEnum 12 = Prelude.Just DT_QUINT8
        maybeToEnum 13 = Prelude.Just DT_QINT32
        maybeToEnum 14 = Prelude.Just DT_BFLOAT16
        maybeToEnum 15 = Prelude.Just DT_QINT16
        maybeToEnum 16 = Prelude.Just DT_QUINT16
        maybeToEnum 17 = Prelude.Just DT_UINT16
        maybeToEnum 18 = Prelude.Just DT_COMPLEX128
        maybeToEnum 19 = Prelude.Just DT_HALF
        maybeToEnum 20 = Prelude.Just DT_RESOURCE
        maybeToEnum 21 = Prelude.Just DT_VARIANT
        maybeToEnum 22 = Prelude.Just DT_UINT32
        maybeToEnum 23 = Prelude.Just DT_UINT64
        maybeToEnum 101 = Prelude.Just DT_FLOAT_REF
        maybeToEnum 102 = Prelude.Just DT_DOUBLE_REF
        maybeToEnum 103 = Prelude.Just DT_INT32_REF
        maybeToEnum 104 = Prelude.Just DT_UINT8_REF
        maybeToEnum 105 = Prelude.Just DT_INT16_REF
        maybeToEnum 106 = Prelude.Just DT_INT8_REF
        maybeToEnum 107 = Prelude.Just DT_STRING_REF
        maybeToEnum 108 = Prelude.Just DT_COMPLEX64_REF
        maybeToEnum 109 = Prelude.Just DT_INT64_REF
        maybeToEnum 110 = Prelude.Just DT_BOOL_REF
        maybeToEnum 111 = Prelude.Just DT_QINT8_REF
        maybeToEnum 112 = Prelude.Just DT_QUINT8_REF
        maybeToEnum 113 = Prelude.Just DT_QINT32_REF
        maybeToEnum 114 = Prelude.Just DT_BFLOAT16_REF
        maybeToEnum 115 = Prelude.Just DT_QINT16_REF
        maybeToEnum 116 = Prelude.Just DT_QUINT16_REF
        maybeToEnum 117 = Prelude.Just DT_UINT16_REF
        maybeToEnum 118 = Prelude.Just DT_COMPLEX128_REF
        maybeToEnum 119 = Prelude.Just DT_HALF_REF
        maybeToEnum 120 = Prelude.Just DT_RESOURCE_REF
        maybeToEnum 121 = Prelude.Just DT_VARIANT_REF
        maybeToEnum 122 = Prelude.Just DT_UINT32_REF
        maybeToEnum 123 = Prelude.Just DT_UINT64_REF
        maybeToEnum _ = Prelude.Nothing
        showEnum DT_INVALID = "DT_INVALID"
        showEnum DT_FLOAT = "DT_FLOAT"
        showEnum DT_DOUBLE = "DT_DOUBLE"
        showEnum DT_INT32 = "DT_INT32"
        showEnum DT_UINT8 = "DT_UINT8"
        showEnum DT_INT16 = "DT_INT16"
        showEnum DT_INT8 = "DT_INT8"
        showEnum DT_STRING = "DT_STRING"
        showEnum DT_COMPLEX64 = "DT_COMPLEX64"
        showEnum DT_INT64 = "DT_INT64"
        showEnum DT_BOOL = "DT_BOOL"
        showEnum DT_QINT8 = "DT_QINT8"
        showEnum DT_QUINT8 = "DT_QUINT8"
        showEnum DT_QINT32 = "DT_QINT32"
        showEnum DT_BFLOAT16 = "DT_BFLOAT16"
        showEnum DT_QINT16 = "DT_QINT16"
        showEnum DT_QUINT16 = "DT_QUINT16"
        showEnum DT_UINT16 = "DT_UINT16"
        showEnum DT_COMPLEX128 = "DT_COMPLEX128"
        showEnum DT_HALF = "DT_HALF"
        showEnum DT_RESOURCE = "DT_RESOURCE"
        showEnum DT_VARIANT = "DT_VARIANT"
        showEnum DT_UINT32 = "DT_UINT32"
        showEnum DT_UINT64 = "DT_UINT64"
        showEnum DT_FLOAT_REF = "DT_FLOAT_REF"
        showEnum DT_DOUBLE_REF = "DT_DOUBLE_REF"
        showEnum DT_INT32_REF = "DT_INT32_REF"
        showEnum DT_UINT8_REF = "DT_UINT8_REF"
        showEnum DT_INT16_REF = "DT_INT16_REF"
        showEnum DT_INT8_REF = "DT_INT8_REF"
        showEnum DT_STRING_REF = "DT_STRING_REF"
        showEnum DT_COMPLEX64_REF = "DT_COMPLEX64_REF"
        showEnum DT_INT64_REF = "DT_INT64_REF"
        showEnum DT_BOOL_REF = "DT_BOOL_REF"
        showEnum DT_QINT8_REF = "DT_QINT8_REF"
        showEnum DT_QUINT8_REF = "DT_QUINT8_REF"
        showEnum DT_QINT32_REF = "DT_QINT32_REF"
        showEnum DT_BFLOAT16_REF = "DT_BFLOAT16_REF"
        showEnum DT_QINT16_REF = "DT_QINT16_REF"
        showEnum DT_QUINT16_REF = "DT_QUINT16_REF"
        showEnum DT_UINT16_REF = "DT_UINT16_REF"
        showEnum DT_COMPLEX128_REF = "DT_COMPLEX128_REF"
        showEnum DT_HALF_REF = "DT_HALF_REF"
        showEnum DT_RESOURCE_REF = "DT_RESOURCE_REF"
        showEnum DT_VARIANT_REF = "DT_VARIANT_REF"
        showEnum DT_UINT32_REF = "DT_UINT32_REF"
        showEnum DT_UINT64_REF = "DT_UINT64_REF"
        readEnum "DT_INVALID" = Prelude.Just DT_INVALID
        readEnum "DT_FLOAT" = Prelude.Just DT_FLOAT
        readEnum "DT_DOUBLE" = Prelude.Just DT_DOUBLE
        readEnum "DT_INT32" = Prelude.Just DT_INT32
        readEnum "DT_UINT8" = Prelude.Just DT_UINT8
        readEnum "DT_INT16" = Prelude.Just DT_INT16
        readEnum "DT_INT8" = Prelude.Just DT_INT8
        readEnum "DT_STRING" = Prelude.Just DT_STRING
        readEnum "DT_COMPLEX64" = Prelude.Just DT_COMPLEX64
        readEnum "DT_INT64" = Prelude.Just DT_INT64
        readEnum "DT_BOOL" = Prelude.Just DT_BOOL
        readEnum "DT_QINT8" = Prelude.Just DT_QINT8
        readEnum "DT_QUINT8" = Prelude.Just DT_QUINT8
        readEnum "DT_QINT32" = Prelude.Just DT_QINT32
        readEnum "DT_BFLOAT16" = Prelude.Just DT_BFLOAT16
        readEnum "DT_QINT16" = Prelude.Just DT_QINT16
        readEnum "DT_QUINT16" = Prelude.Just DT_QUINT16
        readEnum "DT_UINT16" = Prelude.Just DT_UINT16
        readEnum "DT_COMPLEX128" = Prelude.Just DT_COMPLEX128
        readEnum "DT_HALF" = Prelude.Just DT_HALF
        readEnum "DT_RESOURCE" = Prelude.Just DT_RESOURCE
        readEnum "DT_VARIANT" = Prelude.Just DT_VARIANT
        readEnum "DT_UINT32" = Prelude.Just DT_UINT32
        readEnum "DT_UINT64" = Prelude.Just DT_UINT64
        readEnum "DT_FLOAT_REF" = Prelude.Just DT_FLOAT_REF
        readEnum "DT_DOUBLE_REF" = Prelude.Just DT_DOUBLE_REF
        readEnum "DT_INT32_REF" = Prelude.Just DT_INT32_REF
        readEnum "DT_UINT8_REF" = Prelude.Just DT_UINT8_REF
        readEnum "DT_INT16_REF" = Prelude.Just DT_INT16_REF
        readEnum "DT_INT8_REF" = Prelude.Just DT_INT8_REF
        readEnum "DT_STRING_REF" = Prelude.Just DT_STRING_REF
        readEnum "DT_COMPLEX64_REF" = Prelude.Just DT_COMPLEX64_REF
        readEnum "DT_INT64_REF" = Prelude.Just DT_INT64_REF
        readEnum "DT_BOOL_REF" = Prelude.Just DT_BOOL_REF
        readEnum "DT_QINT8_REF" = Prelude.Just DT_QINT8_REF
        readEnum "DT_QUINT8_REF" = Prelude.Just DT_QUINT8_REF
        readEnum "DT_QINT32_REF" = Prelude.Just DT_QINT32_REF
        readEnum "DT_BFLOAT16_REF" = Prelude.Just DT_BFLOAT16_REF
        readEnum "DT_QINT16_REF" = Prelude.Just DT_QINT16_REF
        readEnum "DT_QUINT16_REF" = Prelude.Just DT_QUINT16_REF
        readEnum "DT_UINT16_REF" = Prelude.Just DT_UINT16_REF
        readEnum "DT_COMPLEX128_REF" = Prelude.Just DT_COMPLEX128_REF
        readEnum "DT_HALF_REF" = Prelude.Just DT_HALF_REF
        readEnum "DT_RESOURCE_REF" = Prelude.Just DT_RESOURCE_REF
        readEnum "DT_VARIANT_REF" = Prelude.Just DT_VARIANT_REF
        readEnum "DT_UINT32_REF" = Prelude.Just DT_UINT32_REF
        readEnum "DT_UINT64_REF" = Prelude.Just DT_UINT64_REF
        readEnum _ = Prelude.Nothing

instance Prelude.Enum DataType where
        toEnum k__
          = Prelude.maybe
              (Prelude.error
                 ((Prelude.++) "toEnum: unknown value for enum DataType: "
                    (Prelude.show k__)))
              Prelude.id
              (Data.ProtoLens.maybeToEnum k__)
        fromEnum DT_INVALID = 0
        fromEnum DT_FLOAT = 1
        fromEnum DT_DOUBLE = 2
        fromEnum DT_INT32 = 3
        fromEnum DT_UINT8 = 4
        fromEnum DT_INT16 = 5
        fromEnum DT_INT8 = 6
        fromEnum DT_STRING = 7
        fromEnum DT_COMPLEX64 = 8
        fromEnum DT_INT64 = 9
        fromEnum DT_BOOL = 10
        fromEnum DT_QINT8 = 11
        fromEnum DT_QUINT8 = 12
        fromEnum DT_QINT32 = 13
        fromEnum DT_BFLOAT16 = 14
        fromEnum DT_QINT16 = 15
        fromEnum DT_QUINT16 = 16
        fromEnum DT_UINT16 = 17
        fromEnum DT_COMPLEX128 = 18
        fromEnum DT_HALF = 19
        fromEnum DT_RESOURCE = 20
        fromEnum DT_VARIANT = 21
        fromEnum DT_UINT32 = 22
        fromEnum DT_UINT64 = 23
        fromEnum DT_FLOAT_REF = 101
        fromEnum DT_DOUBLE_REF = 102
        fromEnum DT_INT32_REF = 103
        fromEnum DT_UINT8_REF = 104
        fromEnum DT_INT16_REF = 105
        fromEnum DT_INT8_REF = 106
        fromEnum DT_STRING_REF = 107
        fromEnum DT_COMPLEX64_REF = 108
        fromEnum DT_INT64_REF = 109
        fromEnum DT_BOOL_REF = 110
        fromEnum DT_QINT8_REF = 111
        fromEnum DT_QUINT8_REF = 112
        fromEnum DT_QINT32_REF = 113
        fromEnum DT_BFLOAT16_REF = 114
        fromEnum DT_QINT16_REF = 115
        fromEnum DT_QUINT16_REF = 116
        fromEnum DT_UINT16_REF = 117
        fromEnum DT_COMPLEX128_REF = 118
        fromEnum DT_HALF_REF = 119
        fromEnum DT_RESOURCE_REF = 120
        fromEnum DT_VARIANT_REF = 121
        fromEnum DT_UINT32_REF = 122
        fromEnum DT_UINT64_REF = 123
        succ DT_UINT64_REF
          = Prelude.error
              "DataType.succ: bad argument DT_UINT64_REF. This value would be out of bounds."
        succ DT_INVALID = DT_FLOAT
        succ DT_FLOAT = DT_DOUBLE
        succ DT_DOUBLE = DT_INT32
        succ DT_INT32 = DT_UINT8
        succ DT_UINT8 = DT_INT16
        succ DT_INT16 = DT_INT8
        succ DT_INT8 = DT_STRING
        succ DT_STRING = DT_COMPLEX64
        succ DT_COMPLEX64 = DT_INT64
        succ DT_INT64 = DT_BOOL
        succ DT_BOOL = DT_QINT8
        succ DT_QINT8 = DT_QUINT8
        succ DT_QUINT8 = DT_QINT32
        succ DT_QINT32 = DT_BFLOAT16
        succ DT_BFLOAT16 = DT_QINT16
        succ DT_QINT16 = DT_QUINT16
        succ DT_QUINT16 = DT_UINT16
        succ DT_UINT16 = DT_COMPLEX128
        succ DT_COMPLEX128 = DT_HALF
        succ DT_HALF = DT_RESOURCE
        succ DT_RESOURCE = DT_VARIANT
        succ DT_VARIANT = DT_UINT32
        succ DT_UINT32 = DT_UINT64
        succ DT_UINT64 = DT_FLOAT_REF
        succ DT_FLOAT_REF = DT_DOUBLE_REF
        succ DT_DOUBLE_REF = DT_INT32_REF
        succ DT_INT32_REF = DT_UINT8_REF
        succ DT_UINT8_REF = DT_INT16_REF
        succ DT_INT16_REF = DT_INT8_REF
        succ DT_INT8_REF = DT_STRING_REF
        succ DT_STRING_REF = DT_COMPLEX64_REF
        succ DT_COMPLEX64_REF = DT_INT64_REF
        succ DT_INT64_REF = DT_BOOL_REF
        succ DT_BOOL_REF = DT_QINT8_REF
        succ DT_QINT8_REF = DT_QUINT8_REF
        succ DT_QUINT8_REF = DT_QINT32_REF
        succ DT_QINT32_REF = DT_BFLOAT16_REF
        succ DT_BFLOAT16_REF = DT_QINT16_REF
        succ DT_QINT16_REF = DT_QUINT16_REF
        succ DT_QUINT16_REF = DT_UINT16_REF
        succ DT_UINT16_REF = DT_COMPLEX128_REF
        succ DT_COMPLEX128_REF = DT_HALF_REF
        succ DT_HALF_REF = DT_RESOURCE_REF
        succ DT_RESOURCE_REF = DT_VARIANT_REF
        succ DT_VARIANT_REF = DT_UINT32_REF
        succ DT_UINT32_REF = DT_UINT64_REF
        pred DT_INVALID
          = Prelude.error
              "DataType.pred: bad argument DT_INVALID. This value would be out of bounds."
        pred DT_FLOAT = DT_INVALID
        pred DT_DOUBLE = DT_FLOAT
        pred DT_INT32 = DT_DOUBLE
        pred DT_UINT8 = DT_INT32
        pred DT_INT16 = DT_UINT8
        pred DT_INT8 = DT_INT16
        pred DT_STRING = DT_INT8
        pred DT_COMPLEX64 = DT_STRING
        pred DT_INT64 = DT_COMPLEX64
        pred DT_BOOL = DT_INT64
        pred DT_QINT8 = DT_BOOL
        pred DT_QUINT8 = DT_QINT8
        pred DT_QINT32 = DT_QUINT8
        pred DT_BFLOAT16 = DT_QINT32
        pred DT_QINT16 = DT_BFLOAT16
        pred DT_QUINT16 = DT_QINT16
        pred DT_UINT16 = DT_QUINT16
        pred DT_COMPLEX128 = DT_UINT16
        pred DT_HALF = DT_COMPLEX128
        pred DT_RESOURCE = DT_HALF
        pred DT_VARIANT = DT_RESOURCE
        pred DT_UINT32 = DT_VARIANT
        pred DT_UINT64 = DT_UINT32
        pred DT_FLOAT_REF = DT_UINT64
        pred DT_DOUBLE_REF = DT_FLOAT_REF
        pred DT_INT32_REF = DT_DOUBLE_REF
        pred DT_UINT8_REF = DT_INT32_REF
        pred DT_INT16_REF = DT_UINT8_REF
        pred DT_INT8_REF = DT_INT16_REF
        pred DT_STRING_REF = DT_INT8_REF
        pred DT_COMPLEX64_REF = DT_STRING_REF
        pred DT_INT64_REF = DT_COMPLEX64_REF
        pred DT_BOOL_REF = DT_INT64_REF
        pred DT_QINT8_REF = DT_BOOL_REF
        pred DT_QUINT8_REF = DT_QINT8_REF
        pred DT_QINT32_REF = DT_QUINT8_REF
        pred DT_BFLOAT16_REF = DT_QINT32_REF
        pred DT_QINT16_REF = DT_BFLOAT16_REF
        pred DT_QUINT16_REF = DT_QINT16_REF
        pred DT_UINT16_REF = DT_QUINT16_REF
        pred DT_COMPLEX128_REF = DT_UINT16_REF
        pred DT_HALF_REF = DT_COMPLEX128_REF
        pred DT_RESOURCE_REF = DT_HALF_REF
        pred DT_VARIANT_REF = DT_RESOURCE_REF
        pred DT_UINT32_REF = DT_VARIANT_REF
        pred DT_UINT64_REF = DT_UINT32_REF
        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo

instance Prelude.Bounded DataType where
        minBound = DT_INVALID
        maxBound = DT_UINT64_REF