module Hix.Managed.Data.Bump where import Distribution.Pretty (Pretty (pretty)) import Text.PrettyPrint (brackets, parens, (<+>)) import Hix.Data.Version (Version) data Bump = Bump { Bump -> Version version :: Version, Bump -> Version bound :: Version, Bump -> Bool changed :: Bool } deriving stock (Bump -> Bump -> Bool (Bump -> Bump -> Bool) -> (Bump -> Bump -> Bool) -> Eq Bump forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Bump -> Bump -> Bool == :: Bump -> Bump -> Bool $c/= :: Bump -> Bump -> Bool /= :: Bump -> Bump -> Bool Eq, Int -> Bump -> ShowS [Bump] -> ShowS Bump -> String (Int -> Bump -> ShowS) -> (Bump -> String) -> ([Bump] -> ShowS) -> Show Bump forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Bump -> ShowS showsPrec :: Int -> Bump -> ShowS $cshow :: Bump -> String show :: Bump -> String $cshowList :: [Bump] -> ShowS showList :: [Bump] -> ShowS Show, (forall x. Bump -> Rep Bump x) -> (forall x. Rep Bump x -> Bump) -> Generic Bump forall x. Rep Bump x -> Bump forall x. Bump -> Rep Bump x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. Bump -> Rep Bump x from :: forall x. Bump -> Rep Bump x $cto :: forall x. Rep Bump x -> Bump to :: forall x. Rep Bump x -> Bump Generic) instance Pretty Bump where pretty :: Bump -> Doc pretty Bump {Version version :: Bump -> Version version :: Version version, Version bound :: Bump -> Version bound :: Version bound, Bool changed :: Bump -> Bool changed :: Bool changed} = Version -> Doc forall a. Pretty a => a -> Doc pretty Version version Doc -> Doc -> Doc <+> Doc -> Doc parens (Doc "<" Doc -> Doc -> Doc forall a. Semigroup a => a -> a -> a <> Version -> Doc forall a. Pretty a => a -> Doc pretty Version bound) Doc -> Doc -> Doc <+> Doc -> Doc brackets (if Bool changed then Doc "x" else Doc " ")