{-# LANGUAGE TemplateHaskell #-}
module CabalLenses.Version where
import Distribution.Version
import Control.Lens
versionBranchL :: Iso' Version [Int]
versionBranchL :: Iso' Version [Int]
versionBranchL = forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b
iso Version -> [Int]
versionNumbers [Int] -> Version
mkVersion
lowerBound :: Lens' VersionInterval LowerBound
lowerBound :: Lens' VersionInterval LowerBound
lowerBound = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens VersionInterval -> LowerBound
getLowerBound VersionInterval -> LowerBound -> VersionInterval
setLowerBound
where
getLowerBound :: VersionInterval -> LowerBound
getLowerBound (VersionInterval LowerBound
lowerBound UpperBound
_) = LowerBound
lowerBound
setLowerBound :: VersionInterval -> LowerBound -> VersionInterval
setLowerBound (VersionInterval LowerBound
_ UpperBound
upperBound) LowerBound
lowerBound = LowerBound -> UpperBound -> VersionInterval
VersionInterval LowerBound
lowerBound UpperBound
upperBound
version :: Lens' LowerBound Version
version :: Lens' LowerBound Version
version = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens LowerBound -> Version
getVersion LowerBound -> Version -> LowerBound
setVersion
where
getVersion :: LowerBound -> Version
getVersion (LowerBound Version
vers Bound
_) = Version
vers
setVersion :: LowerBound -> Version -> LowerBound
setVersion (LowerBound Version
_ Bound
bound) Version
vers = Version -> Bound -> LowerBound
LowerBound Version
vers Bound
bound
bound :: Lens' LowerBound Bound
bound :: Lens' LowerBound Bound
bound = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens LowerBound -> Bound
getBound LowerBound -> Bound -> LowerBound
setBound
where
getBound :: LowerBound -> Bound
getBound (LowerBound Version
_ Bound
bound) = Bound
bound
setBound :: LowerBound -> Bound -> LowerBound
setBound (LowerBound Version
vers Bound
_) Bound
bound = Version -> Bound -> LowerBound
LowerBound Version
vers Bound
bound
upperBound :: Lens' VersionInterval UpperBound
upperBound :: Lens' VersionInterval UpperBound
upperBound = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens VersionInterval -> UpperBound
getUpperBound VersionInterval -> UpperBound -> VersionInterval
setUpperBound
where
getUpperBound :: VersionInterval -> UpperBound
getUpperBound (VersionInterval LowerBound
_ UpperBound
upperBound) = UpperBound
upperBound
setUpperBound :: VersionInterval -> UpperBound -> VersionInterval
setUpperBound (VersionInterval LowerBound
lowerBound UpperBound
_) UpperBound
upperBound = LowerBound -> UpperBound -> VersionInterval
VersionInterval LowerBound
lowerBound UpperBound
upperBound
noLowerBound :: LowerBound
noLowerBound :: LowerBound
noLowerBound = Version -> Bound -> LowerBound
LowerBound ([Int] -> Version
mkVersion [Int
0]) Bound
InclusiveBound