{-# OPTIONS_HADDOCK hide #-}
module Graphics.Vty.Debug.Image where

import Graphics.Vty.Image

type ImageConstructLog = [ImageConstructEvent]
data ImageConstructEvent = ImageConstructEvent
    deriving ( Show, Eq )

forwardImageOps :: [Image -> Image]
forwardImageOps = map forwardTransform debugImageOps

forwardTransform, reverseTransform :: ImageOp -> (Image -> Image)

forwardTransform (ImageOp f _) = f
reverseTransform (ImageOp _ r) = r

data ImageOp = ImageOp ImageEndo ImageEndo
type ImageEndo = Image -> Image

debugImageOps :: [ImageOp]
debugImageOps =
    [ idImageOp
    -- , renderSingleColumnCharOp
    -- , renderDoubleColumnCharOp
    ]

idImageOp :: ImageOp
idImageOp = ImageOp id id

-- renderCharOp :: ImageOp
-- renderCharOp = ImageOp id id