{-# LANGUAGE Safe #-}

{-|
Module      : Dep.Bricks.Box
Description : A module to define characters that are used in the other modules for the /bricks/.
Maintainer  : hapytexeu+gh@gmail.com
Stability   : experimental
Portability : POSIX

This module defines characters to generate images in the user interface. These render wires, boxes, etc.
-}

module Dep.Bricks.Box (
    -- * Box borders
    boxh,  boxv
  , boxlb, boxlt, boxrb, boxrt
  , boxhu, boxhd, boxvl, boxvr
    -- * Wire characters
  , lineh, linev, negator
  ) where

-- | A character to render a /wire/ in a /vertical/ direction.
linev :: Char
linev :: Char
linev = Char
'\x2502'

-- | A character to render a /wire/ in a /horizontal/ direction.
lineh :: Char
lineh :: Char
lineh = Char
'\x2500'

-- | A character to render the top left corner of a /thick/ box.
boxlt :: Char
boxlt :: Char
boxlt = Char
'\x250f'

-- | A character to render the horizontal border corner of a /thick/ box.
boxh :: Char
boxh :: Char
boxh = Char
'\x2501'

-- | A character to render the vertical border corner of a /thick/ box.
boxv :: Char
boxv :: Char
boxv = Char
'\x2503'

-- | A character to render the top right corner of a /thick/ box.
boxrt :: Char
boxrt :: Char
boxrt = Char
'\x2513'

-- | A character to render the bottom left corner of a /thick/ box.
boxlb :: Char
boxlb :: Char
boxlb = Char
'\x2517'

-- | A character to render the bottom right corner of a /thick/ box.
boxrb :: Char
boxrb :: Char
boxrb = Char
'\x251b'

-- | A character to render the horizontal border of a /thick/ box with a wire at at the upper part.
boxhu :: Char
boxhu :: Char
boxhu = Char
'\x2537'

-- | A character to render the horizontal border of a /thick/ box with a wire at at the bottom part.
boxhd :: Char
boxhd :: Char
boxhd = Char
'\x252f'

-- | A character to render the vertical border of a /thick/ box with a wire at at the left part.
boxvl :: Char
boxvl :: Char
boxvl = Char
'\x2528'

-- | A character to render the vertical border of a /thick/ box with a wire at at the right part.
boxvr :: Char
boxvr :: Char
boxvr = Char
'\x2520'

-- | A character to render a negator.
negator :: Char
negator :: Char
negator = Char
'O'