{- This file was auto-generated from tensorflow/core/framework/resource_handle.proto by the proto-lens-protoc program. -}
{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances,
  PatternSynonyms #-}
{-# OPTIONS_GHC -fno-warn-unused-imports#-}
module Proto.Tensorflow.Core.Framework.ResourceHandle where
import qualified Prelude
import qualified Data.Int
import qualified 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

data ResourceHandle = ResourceHandle{_ResourceHandle'device ::
                                     Data.Text.Text,
                                     _ResourceHandle'container :: Data.Text.Text,
                                     _ResourceHandle'name :: Data.Text.Text,
                                     _ResourceHandle'hashCode :: Data.Word.Word64,
                                     _ResourceHandle'maybeTypeName :: Data.Text.Text}
                    deriving (Prelude.Show, Prelude.Eq)

type instance Data.ProtoLens.Field "device" ResourceHandle =
     Data.Text.Text

instance Data.ProtoLens.HasField "device" ResourceHandle
         ResourceHandle where
        field _
          = Lens.Family2.Unchecked.lens _ResourceHandle'device
              (\ x__ y__ -> x__{_ResourceHandle'device = y__})

type instance Data.ProtoLens.Field "container" ResourceHandle =
     Data.Text.Text

instance Data.ProtoLens.HasField "container" ResourceHandle
         ResourceHandle where
        field _
          = Lens.Family2.Unchecked.lens _ResourceHandle'container
              (\ x__ y__ -> x__{_ResourceHandle'container = y__})

type instance Data.ProtoLens.Field "name" ResourceHandle =
     Data.Text.Text

instance Data.ProtoLens.HasField "name" ResourceHandle
         ResourceHandle where
        field _
          = Lens.Family2.Unchecked.lens _ResourceHandle'name
              (\ x__ y__ -> x__{_ResourceHandle'name = y__})

type instance Data.ProtoLens.Field "hashCode" ResourceHandle =
     Data.Word.Word64

instance Data.ProtoLens.HasField "hashCode" ResourceHandle
         ResourceHandle where
        field _
          = Lens.Family2.Unchecked.lens _ResourceHandle'hashCode
              (\ x__ y__ -> x__{_ResourceHandle'hashCode = y__})

type instance Data.ProtoLens.Field "maybeTypeName" ResourceHandle =
     Data.Text.Text

instance Data.ProtoLens.HasField "maybeTypeName" ResourceHandle
         ResourceHandle where
        field _
          = Lens.Family2.Unchecked.lens _ResourceHandle'maybeTypeName
              (\ x__ y__ -> x__{_ResourceHandle'maybeTypeName = y__})

instance Data.Default.Class.Default ResourceHandle where
        def
          = ResourceHandle{_ResourceHandle'device =
                             Data.ProtoLens.fieldDefault,
                           _ResourceHandle'container = Data.ProtoLens.fieldDefault,
                           _ResourceHandle'name = Data.ProtoLens.fieldDefault,
                           _ResourceHandle'hashCode = Data.ProtoLens.fieldDefault,
                           _ResourceHandle'maybeTypeName = Data.ProtoLens.fieldDefault}

instance Data.ProtoLens.Message ResourceHandle where
        descriptor
          = let device__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "device"
                      (Data.ProtoLens.StringField ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional device)
                container__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "container"
                      (Data.ProtoLens.StringField ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional container)
                name__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "name"
                      (Data.ProtoLens.StringField ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional name)
                hashCode__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "hash_code"
                      (Data.ProtoLens.UInt64Field ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional hashCode)
                maybeTypeName__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "maybe_type_name"
                      (Data.ProtoLens.StringField ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional maybeTypeName)
              in
              Data.ProtoLens.MessageDescriptor
                (Data.Map.fromList
                   [(Data.ProtoLens.Tag 1, device__field_descriptor),
                    (Data.ProtoLens.Tag 2, container__field_descriptor),
                    (Data.ProtoLens.Tag 3, name__field_descriptor),
                    (Data.ProtoLens.Tag 4, hashCode__field_descriptor),
                    (Data.ProtoLens.Tag 5, maybeTypeName__field_descriptor)])
                (Data.Map.fromList
                   [("device", device__field_descriptor),
                    ("container", container__field_descriptor),
                    ("name", name__field_descriptor),
                    ("hash_code", hashCode__field_descriptor),
                    ("maybe_type_name", maybeTypeName__field_descriptor)])

container ::
          forall msg msg' . Data.ProtoLens.HasField "container" msg msg' =>
            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "container" msg)
              (Data.ProtoLens.Field "container" msg')
container
  = Data.ProtoLens.field
      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "container")

device ::
       forall msg msg' . Data.ProtoLens.HasField "device" msg msg' =>
         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "device" msg)
           (Data.ProtoLens.Field "device" msg')
device
  = Data.ProtoLens.field
      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "device")

hashCode ::
         forall msg msg' . Data.ProtoLens.HasField "hashCode" msg msg' =>
           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "hashCode" msg)
             (Data.ProtoLens.Field "hashCode" msg')
hashCode
  = Data.ProtoLens.field
      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "hashCode")

maybeTypeName ::
              forall msg msg' .
                Data.ProtoLens.HasField "maybeTypeName" msg msg' =>
                Lens.Family2.Lens msg msg'
                  (Data.ProtoLens.Field "maybeTypeName" msg)
                  (Data.ProtoLens.Field "maybeTypeName" msg')
maybeTypeName
  = Data.ProtoLens.field
      (Data.ProtoLens.ProxySym ::
         Data.ProtoLens.ProxySym "maybeTypeName")

name ::
     forall msg msg' . Data.ProtoLens.HasField "name" msg msg' =>
       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "name" msg)
         (Data.ProtoLens.Field "name" msg')
name
  = Data.ProtoLens.field
      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "name")