ZV7PIRTUNQYLWJQWKG73RC2X7MKSUMPGU7HQUW7TIBXB4OSYYDBAC {-# LANGUAGE TemplateHaskell #-}module Location( -- * ClassesLocation (..)) whereimport Data.PrintableTextimport Control.Lensimport Control.Lens.TH-- |Location of map in FFX in the form 'Area - Section'data Location= Location{ _area :: PrintableText, _section :: PrintableText}$(makeLenses ''Location)
module Data.PrintableText( -- * ClassesPrintableText-- * Constructors, singleton, fromText-- * Destructure, unPrintableText) whereimport Data.Char (isPrint)import qualified Data.Text as T-- |A non empty string that has atleast one printable characternewtype PrintableText = PrintableText { unPrintableText :: T.Text }deriving (Eq, Ord, Show)-- |Create a PrintableText from a single Charsingleton :: Char -> PrintableTextsingleton = PrintableText . T.singleton-- |Attempt to create a PrintableText from a Text, returns Nothing if no printable characters detectedfromText :: T.Text -> Maybe PrintableTextfromText x| T.all isPrint x = Just $ PrintableText x| otherwise = Nothing