module Filediff.Stats
(
numFilesAffected
, numAddedLines
, numDeletedLines
) where
import Filediff.Types
numFilesAffected :: Diff -> Int
numFilesAffected = length . filediffs
numMatchingLines :: (FileChange -> Bool) -> (ListDiff Line -> [b]) -> Diff -> Int
numMatchingLines isMatchingChange matchingLines
= sum
. map (length . matchingLines . listDiff)
. filter isMatchingChange
. map change
. filediffs
numAddedLines :: Diff -> Int
numAddedLines = numMatchingLines (not . isDel) adds
numDeletedLines :: Diff -> Int
numDeletedLines = numMatchingLines (not . isAdd) dels