diff options
Diffstat (limited to 'src/WWW/Colors/Hex.hs')
| -rw-r--r-- | src/WWW/Colors/Hex.hs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/WWW/Colors/Hex.hs b/src/WWW/Colors/Hex.hs new file mode 100644 index 0000000..1773e66 --- /dev/null +++ b/src/WWW/Colors/Hex.hs @@ -0,0 +1,34 @@ +{-# LANGUAGE TemplateHaskell #-} +module WWW.Colors.Hex + ( HexColor + ) where + +import Data.Colour +import Digrams.Attributes +import Language.Haskell.TH.Quote + + +newtype HexColor = HexColor ByteString + deriving (Eq, Generic, Ord) + +instance Bounded HexColor where + maxBound = HexColor "\255\255\255" + minBound = HexColor "\NUL\NUL\NUL" + + +instance Color HexColor where + + + + +hex :: QuasiQuoter +hex = QuasiQuoter + { quoteExp = parseit + , quotePat = failure "quotePat" + , quoteType = failure "quoteType" + , quoteDec = failure "quoteDec" + } where + failure s = const $ fail $ "No " <> s <> " defined for the hexcolor quasiquoter." + parseit s = case undefined of + Nothing -> fail $ "Can't understand " <> s <> " as a valid hex color." + Just h -> h `seq` [|h|] |
