feed-gipeda-0.1.0.2: src/FeedGipeda/Master/RepoDiff.hs
-- | Provides means to diff sets of repositories.
module FeedGipeda.Master.RepoDiff
( RepoDiff (..)
, compute
, apply
) where
import Data.Set (Set)
import qualified Data.Set as Set
import FeedGipeda.Repo (Repo)
data RepoDiff
= RepoDiff
{ added :: Set Repo
, removed :: Set Repo
} deriving (Eq, Show)
compute :: Set Repo -> Set Repo -> RepoDiff
compute old new =
RepoDiff (Set.difference new old) (Set.difference old new)
apply :: RepoDiff -> Set Repo -> Set Repo
apply diff =
flip Set.difference (removed diff) . Set.union (added diff)