{-# OPTIONS_GHC -fno-warn-orphans #-}
module Darcs.Patch.Prim.V1.Details
    ()
    where

import Darcs.Prelude

import Darcs.Patch.Prim.Class ( PrimDetails(..) )
import Darcs.Patch.Prim.V1.Core
    ( Prim(..), FilePatchType(..), DirPatchType(..) )
import Darcs.Patch.SummaryData ( SummDetail(..), SummOp(..) )


instance PrimDetails Prim where
  summarizePrim :: forall wX wY. Prim wX wY -> [SummDetail]
summarizePrim (FP AnchoredPath
f (Hunk Int
_ [ByteString]
o [ByteString]
n)) = [SummOp -> AnchoredPath -> Int -> Int -> Int -> SummDetail
SummFile SummOp
SummMod AnchoredPath
f ([ByteString] -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length [ByteString]
o) ([ByteString] -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length [ByteString]
n) Int
0]
  summarizePrim (FP AnchoredPath
f (Binary ByteString
_ ByteString
_)) = [SummOp -> AnchoredPath -> Int -> Int -> Int -> SummDetail
SummFile SummOp
SummMod AnchoredPath
f Int
0 Int
0 Int
0]
  summarizePrim (FP AnchoredPath
f FilePatchType wX wY
AddFile) = [SummOp -> AnchoredPath -> Int -> Int -> Int -> SummDetail
SummFile SummOp
SummAdd AnchoredPath
f Int
0 Int
0 Int
0]
  summarizePrim (FP AnchoredPath
f FilePatchType wX wY
RmFile) = [SummOp -> AnchoredPath -> Int -> Int -> Int -> SummDetail
SummFile SummOp
SummRm AnchoredPath
f Int
0 Int
0 Int
0]
  summarizePrim (FP AnchoredPath
f (TokReplace{})) = [SummOp -> AnchoredPath -> Int -> Int -> Int -> SummDetail
SummFile SummOp
SummMod AnchoredPath
f Int
0 Int
0 Int
1]
  summarizePrim (DP AnchoredPath
d DirPatchType wX wY
AddDir) = [AnchoredPath -> SummDetail
SummAddDir AnchoredPath
d]
  summarizePrim (DP AnchoredPath
d DirPatchType wX wY
RmDir) = [AnchoredPath -> SummDetail
SummRmDir AnchoredPath
d]
  summarizePrim (Move AnchoredPath
f1 AnchoredPath
f2) = [AnchoredPath -> AnchoredPath -> SummDetail
SummMv AnchoredPath
f1 AnchoredPath
f2]
  summarizePrim (ChangePref{}) = [SummDetail
SummNone]