module Distribution.Types.Benchmark.Lens (
    Benchmark,
    module Distribution.Types.Benchmark.Lens,
    ) where

import Distribution.Compat.Lens
import Distribution.Compat.Prelude
import Prelude ()

import Distribution.Types.Benchmark           (Benchmark)
import Distribution.Types.BenchmarkInterface  (BenchmarkInterface)
import Distribution.Types.BuildInfo           (BuildInfo)
import Distribution.Types.UnqualComponentName (UnqualComponentName)

import qualified Distribution.Types.Benchmark as T

benchmarkName :: Lens' Benchmark UnqualComponentName
benchmarkName :: LensLike
  f Benchmark Benchmark UnqualComponentName UnqualComponentName
benchmarkName UnqualComponentName -> f UnqualComponentName
f Benchmark
s = (UnqualComponentName -> Benchmark)
-> f UnqualComponentName -> f Benchmark
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\UnqualComponentName
x -> Benchmark
s { benchmarkName :: UnqualComponentName
T.benchmarkName = UnqualComponentName
x }) (UnqualComponentName -> f UnqualComponentName
f (Benchmark -> UnqualComponentName
T.benchmarkName Benchmark
s))
{-# INLINE benchmarkName #-}

benchmarkInterface :: Lens' Benchmark BenchmarkInterface
benchmarkInterface :: LensLike
  f Benchmark Benchmark BenchmarkInterface BenchmarkInterface
benchmarkInterface BenchmarkInterface -> f BenchmarkInterface
f Benchmark
s = (BenchmarkInterface -> Benchmark)
-> f BenchmarkInterface -> f Benchmark
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\BenchmarkInterface
x -> Benchmark
s { benchmarkInterface :: BenchmarkInterface
T.benchmarkInterface = BenchmarkInterface
x }) (BenchmarkInterface -> f BenchmarkInterface
f (Benchmark -> BenchmarkInterface
T.benchmarkInterface Benchmark
s))
{-# INLINE benchmarkInterface #-}

benchmarkBuildInfo :: Lens' Benchmark BuildInfo
benchmarkBuildInfo :: LensLike f Benchmark Benchmark BuildInfo BuildInfo
benchmarkBuildInfo BuildInfo -> f BuildInfo
f Benchmark
s = (BuildInfo -> Benchmark) -> f BuildInfo -> f Benchmark
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\BuildInfo
x -> Benchmark
s { benchmarkBuildInfo :: BuildInfo
T.benchmarkBuildInfo = BuildInfo
x }) (BuildInfo -> f BuildInfo
f (Benchmark -> BuildInfo
T.benchmarkBuildInfo Benchmark
s))
{-# INLINE benchmarkBuildInfo #-}