{- This file was auto-generated from tensorflow/core/example/example.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.Example.Example 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
import qualified Proto.Tensorflow.Core.Example.Feature

data Example = Example{_Example'features ::
                       !(Prelude.Maybe Proto.Tensorflow.Core.Example.Feature.Features)}
             deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)

instance (a ~ Proto.Tensorflow.Core.Example.Feature.Features,
          b ~ Proto.Tensorflow.Core.Example.Feature.Features,
          Prelude.Functor f) =>
         Lens.Labels.HasLens "features" f Example Example a b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens _Example'features
                 (\ x__ y__ -> x__{_Example'features = y__}))
              (Data.ProtoLens.maybeLens Data.Default.Class.def)

instance (a ~
            Prelude.Maybe Proto.Tensorflow.Core.Example.Feature.Features,
          b ~ Prelude.Maybe Proto.Tensorflow.Core.Example.Feature.Features,
          Prelude.Functor f) =>
         Lens.Labels.HasLens "maybe'features" f Example Example a b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens _Example'features
                 (\ x__ y__ -> x__{_Example'features = y__}))
              Prelude.id

instance Data.Default.Class.Default Example where
        def = Example{_Example'features = Prelude.Nothing}

instance Data.ProtoLens.Message Example where
        descriptor
          = let features__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "features"
                      (Data.ProtoLens.MessageField ::
                         Data.ProtoLens.FieldTypeDescriptor
                           Proto.Tensorflow.Core.Example.Feature.Features)
                      (Data.ProtoLens.OptionalField maybe'features)
                      :: Data.ProtoLens.FieldDescriptor Example
              in
              Data.ProtoLens.MessageDescriptor
                (Data.Text.pack "tensorflow.Example")
                (Data.Map.fromList
                   [(Data.ProtoLens.Tag 1, features__field_descriptor)])
                (Data.Map.fromList [("features", features__field_descriptor)])

data SequenceExample = SequenceExample{_SequenceExample'context ::
                                       !(Prelude.Maybe
                                           Proto.Tensorflow.Core.Example.Feature.Features),
                                       _SequenceExample'featureLists ::
                                       !(Prelude.Maybe
                                           Proto.Tensorflow.Core.Example.Feature.FeatureLists)}
                     deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)

instance (a ~ Proto.Tensorflow.Core.Example.Feature.Features,
          b ~ Proto.Tensorflow.Core.Example.Feature.Features,
          Prelude.Functor f) =>
         Lens.Labels.HasLens "context" f SequenceExample SequenceExample a b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens _SequenceExample'context
                 (\ x__ y__ -> x__{_SequenceExample'context = y__}))
              (Data.ProtoLens.maybeLens Data.Default.Class.def)

instance (a ~
            Prelude.Maybe Proto.Tensorflow.Core.Example.Feature.Features,
          b ~ Prelude.Maybe Proto.Tensorflow.Core.Example.Feature.Features,
          Prelude.Functor f) =>
         Lens.Labels.HasLens "maybe'context" f SequenceExample
           SequenceExample
           a
           b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens _SequenceExample'context
                 (\ x__ y__ -> x__{_SequenceExample'context = y__}))
              Prelude.id

instance (a ~ Proto.Tensorflow.Core.Example.Feature.FeatureLists,
          b ~ Proto.Tensorflow.Core.Example.Feature.FeatureLists,
          Prelude.Functor f) =>
         Lens.Labels.HasLens "featureLists" f SequenceExample
           SequenceExample
           a
           b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens _SequenceExample'featureLists
                 (\ x__ y__ -> x__{_SequenceExample'featureLists = y__}))
              (Data.ProtoLens.maybeLens Data.Default.Class.def)

instance (a ~
            Prelude.Maybe Proto.Tensorflow.Core.Example.Feature.FeatureLists,
          b ~
            Prelude.Maybe Proto.Tensorflow.Core.Example.Feature.FeatureLists,
          Prelude.Functor f) =>
         Lens.Labels.HasLens "maybe'featureLists" f SequenceExample
           SequenceExample
           a
           b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens _SequenceExample'featureLists
                 (\ x__ y__ -> x__{_SequenceExample'featureLists = y__}))
              Prelude.id

instance Data.Default.Class.Default SequenceExample where
        def
          = SequenceExample{_SequenceExample'context = Prelude.Nothing,
                            _SequenceExample'featureLists = Prelude.Nothing}

instance Data.ProtoLens.Message SequenceExample where
        descriptor
          = let context__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "context"
                      (Data.ProtoLens.MessageField ::
                         Data.ProtoLens.FieldTypeDescriptor
                           Proto.Tensorflow.Core.Example.Feature.Features)
                      (Data.ProtoLens.OptionalField maybe'context)
                      :: Data.ProtoLens.FieldDescriptor SequenceExample
                featureLists__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "feature_lists"
                      (Data.ProtoLens.MessageField ::
                         Data.ProtoLens.FieldTypeDescriptor
                           Proto.Tensorflow.Core.Example.Feature.FeatureLists)
                      (Data.ProtoLens.OptionalField maybe'featureLists)
                      :: Data.ProtoLens.FieldDescriptor SequenceExample
              in
              Data.ProtoLens.MessageDescriptor
                (Data.Text.pack "tensorflow.SequenceExample")
                (Data.Map.fromList
                   [(Data.ProtoLens.Tag 1, context__field_descriptor),
                    (Data.ProtoLens.Tag 2, featureLists__field_descriptor)])
                (Data.Map.fromList
                   [("context", context__field_descriptor),
                    ("feature_lists", featureLists__field_descriptor)])

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

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

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

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

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

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