{- This file was auto-generated from tensorflow/core/util/memmapped_file_system.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.Util.MemmappedFileSystem 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 MemmappedFileSystemDirectory = MemmappedFileSystemDirectory{_MemmappedFileSystemDirectory'element
                                                                 ::
                                                                 ![MemmappedFileSystemDirectoryElement]}
                                  deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)

instance (a ~ [MemmappedFileSystemDirectoryElement],
          b ~ [MemmappedFileSystemDirectoryElement], Prelude.Functor f) =>
         Lens.Labels.HasLens "element" f MemmappedFileSystemDirectory
           MemmappedFileSystemDirectory
           a
           b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens _MemmappedFileSystemDirectory'element
                 (\ x__ y__ -> x__{_MemmappedFileSystemDirectory'element = y__}))
              Prelude.id

instance Data.Default.Class.Default MemmappedFileSystemDirectory
         where
        def
          = MemmappedFileSystemDirectory{_MemmappedFileSystemDirectory'element
                                           = []}

instance Data.ProtoLens.Message MemmappedFileSystemDirectory where
        descriptor
          = let element__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "element"
                      (Data.ProtoLens.MessageField ::
                         Data.ProtoLens.FieldTypeDescriptor
                           MemmappedFileSystemDirectoryElement)
                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked element)
                      :: Data.ProtoLens.FieldDescriptor MemmappedFileSystemDirectory
              in
              Data.ProtoLens.MessageDescriptor
                (Data.Text.pack "tensorflow.MemmappedFileSystemDirectory")
                (Data.Map.fromList
                   [(Data.ProtoLens.Tag 1, element__field_descriptor)])
                (Data.Map.fromList [("element", element__field_descriptor)])

data MemmappedFileSystemDirectoryElement = MemmappedFileSystemDirectoryElement{_MemmappedFileSystemDirectoryElement'offset
                                                                               :: !Data.Word.Word64,
                                                                               _MemmappedFileSystemDirectoryElement'name
                                                                               :: !Data.Text.Text}
                                         deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)

instance (a ~ Data.Word.Word64, b ~ Data.Word.Word64,
          Prelude.Functor f) =>
         Lens.Labels.HasLens "offset" f MemmappedFileSystemDirectoryElement
           MemmappedFileSystemDirectoryElement
           a
           b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens
                 _MemmappedFileSystemDirectoryElement'offset
                 (\ x__ y__ ->
                    x__{_MemmappedFileSystemDirectoryElement'offset = y__}))
              Prelude.id

instance (a ~ Data.Text.Text, b ~ Data.Text.Text,
          Prelude.Functor f) =>
         Lens.Labels.HasLens "name" f MemmappedFileSystemDirectoryElement
           MemmappedFileSystemDirectoryElement
           a
           b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens
                 _MemmappedFileSystemDirectoryElement'name
                 (\ x__ y__ ->
                    x__{_MemmappedFileSystemDirectoryElement'name = y__}))
              Prelude.id

instance Data.Default.Class.Default
           MemmappedFileSystemDirectoryElement
         where
        def
          = MemmappedFileSystemDirectoryElement{_MemmappedFileSystemDirectoryElement'offset
                                                  = Data.ProtoLens.fieldDefault,
                                                _MemmappedFileSystemDirectoryElement'name =
                                                  Data.ProtoLens.fieldDefault}

instance Data.ProtoLens.Message MemmappedFileSystemDirectoryElement
         where
        descriptor
          = let offset__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "offset"
                      (Data.ProtoLens.UInt64Field ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional offset)
                      ::
                      Data.ProtoLens.FieldDescriptor MemmappedFileSystemDirectoryElement
                name__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "name"
                      (Data.ProtoLens.StringField ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional name)
                      ::
                      Data.ProtoLens.FieldDescriptor MemmappedFileSystemDirectoryElement
              in
              Data.ProtoLens.MessageDescriptor
                (Data.Text.pack "tensorflow.MemmappedFileSystemDirectoryElement")
                (Data.Map.fromList
                   [(Data.ProtoLens.Tag 1, offset__field_descriptor),
                    (Data.ProtoLens.Tag 2, name__field_descriptor)])
                (Data.Map.fromList
                   [("offset", offset__field_descriptor),
                    ("name", name__field_descriptor)])

element ::
        forall f s t a b . (Lens.Labels.HasLens "element" f s t a b) =>
          Lens.Family2.LensLike f s t a b
element
  = Lens.Labels.lensOf
      ((Lens.Labels.proxy#) :: (Lens.Labels.Proxy#) "element")

name ::
     forall f s t a b . (Lens.Labels.HasLens "name" f s t a b) =>
       Lens.Family2.LensLike f s t a b
name
  = Lens.Labels.lensOf
      ((Lens.Labels.proxy#) :: (Lens.Labels.Proxy#) "name")

offset ::
       forall f s t a b . (Lens.Labels.HasLens "offset" f s t a b) =>
         Lens.Family2.LensLike f s t a b
offset
  = Lens.Labels.lensOf
      ((Lens.Labels.proxy#) :: (Lens.Labels.Proxy#) "offset")