policeman-0.0.0.0: src/Policeman/Core/Diff.hs
{- |
-}
module Policeman.Core.Diff
( PackageDiff (..)
, Diff (..)
, emptyDiff
, hasDiffAdded
, hasDiffDeleted
) where
import Policeman.Core.Package (Export, Module)
import qualified Data.Set as Set
data PackageDiff = PackageDiff
{ pdModule :: !(Diff Module)
, pdExport :: !(HashMap Module (Diff Export))
}
data Diff a = Diff
{ diffAdded :: !(Set a)
, diffDeleted :: !(Set a)
} deriving stock (Eq)
emptyDiff :: Diff a
emptyDiff = Diff
{ diffAdded = Set.empty
, diffDeleted = Set.empty
}
hasDiffDeleted :: Diff a -> Bool
hasDiffDeleted = not . Set.null . diffDeleted
hasDiffAdded :: Diff a -> Bool
hasDiffAdded = not . Set.null . diffAdded