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

import Graphics.Vty.Image

type ImageConstructLog = [ImageConstructEvent]
data ImageConstructEvent = ImageConstructEvent
    deriving ( Int -> ImageConstructEvent -> ShowS
[ImageConstructEvent] -> ShowS
ImageConstructEvent -> String
(Int -> ImageConstructEvent -> ShowS)
-> (ImageConstructEvent -> String)
-> ([ImageConstructEvent] -> ShowS)
-> Show ImageConstructEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ImageConstructEvent] -> ShowS
$cshowList :: [ImageConstructEvent] -> ShowS
show :: ImageConstructEvent -> String
$cshow :: ImageConstructEvent -> String
showsPrec :: Int -> ImageConstructEvent -> ShowS
$cshowsPrec :: Int -> ImageConstructEvent -> ShowS
Show, ImageConstructEvent -> ImageConstructEvent -> Bool
(ImageConstructEvent -> ImageConstructEvent -> Bool)
-> (ImageConstructEvent -> ImageConstructEvent -> Bool)
-> Eq ImageConstructEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ImageConstructEvent -> ImageConstructEvent -> Bool
$c/= :: ImageConstructEvent -> ImageConstructEvent -> Bool
== :: ImageConstructEvent -> ImageConstructEvent -> Bool
$c== :: ImageConstructEvent -> ImageConstructEvent -> Bool
Eq )

forwardImageOps :: [Image -> Image]
forwardImageOps :: [Image -> Image]
forwardImageOps = (ImageOp -> Image -> Image) -> [ImageOp] -> [Image -> Image]
forall a b. (a -> b) -> [a] -> [b]
map ImageOp -> Image -> Image
forwardTransform [ImageOp]
debugImageOps

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

forwardTransform :: ImageOp -> Image -> Image
forwardTransform (ImageOp Image -> Image
f Image -> Image
_) = Image -> Image
f
reverseTransform :: ImageOp -> Image -> Image
reverseTransform (ImageOp Image -> Image
_ Image -> Image
r) = Image -> Image
r

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

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

idImageOp :: ImageOp
idImageOp :: ImageOp
idImageOp = (Image -> Image) -> (Image -> Image) -> ImageOp
ImageOp Image -> Image
forall a. a -> a
id Image -> Image
forall a. a -> a
id

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