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

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

import Distribution.Types.BuildInfo (BuildInfo)
import Distribution.Types.TestSuite (TestSuite)
import Distribution.Types.TestSuiteInterface (TestSuiteInterface)
import Distribution.Types.UnqualComponentName (UnqualComponentName)

import qualified Distribution.Types.TestSuite as T

testName :: Lens' TestSuite UnqualComponentName
testName f s = fmap (\x -> s{T.testName = x}) (f (T.testName s))
{-# INLINE testName #-}

testInterface :: Lens' TestSuite TestSuiteInterface
testInterface f s = fmap (\x -> s{T.testInterface = x}) (f (T.testInterface s))
{-# INLINE testInterface #-}

testBuildInfo :: Lens' TestSuite BuildInfo
testBuildInfo f s = fmap (\x -> s{T.testBuildInfo = x}) (f (T.testBuildInfo s))
{-# INLINE testBuildInfo #-}
