module ASCII.Char
(
Char (..),
toInt, fromIntMaybe, fromIntUnsafe,
allCharacters
)
where
import Data.Bool (otherwise)
import Data.Data (Data)
import Data.Eq (Eq, (/=), (==))
import Data.Hashable (Hashable)
import Data.Int (Int)
import Data.Maybe (Maybe (..))
import Data.Ord (Ord, (<), (>))
import GHC.Generics (Generic)
import Prelude (Bounded, Enum, enumFromTo, fromEnum, maxBound, minBound, toEnum)
import Text.Show (Show)
import qualified Data.Char as C
data Char =
Null | StartOfHeading | StartOfText | EndOfText | EndOfTransmission | Enquiry | Acknowledgement | Bell | Backspace | HorizontalTab | LineFeed | VerticalTab | FormFeed | CarriageReturn | ShiftOut | ShiftIn | DataLinkEscape
| DeviceControl1 | DeviceControl2 | DeviceControl3 | DeviceControl4
| NegativeAcknowledgement | SynchronousIdle | EndOfTransmissionBlock | Cancel | EndOfMedium | Substitute | Escape
| FileSeparator | GroupSeparator | RecordSeparator | UnitSeparator
| Space | ExclamationMark | QuotationMark | NumberSign | DollarSign | PercentSign | Ampersand | Apostrophe | LeftParenthesis | RightParenthesis | Asterisk | PlusSign | Comma | HyphenMinus | FullStop | Slash
| Digit0 | Digit1 | Digit2 | Digit3 | Digit4 | Digit5 | Digit6 | Digit7 | Digit8 | Digit9
| Colon | Semicolon | LessThanSign | EqualsSign | GreaterThanSign | QuestionMark | AtSign
| CapitalLetterA | CapitalLetterB | CapitalLetterC | CapitalLetterD | CapitalLetterE | CapitalLetterF | CapitalLetterG | CapitalLetterH | CapitalLetterI | CapitalLetterJ | CapitalLetterK | CapitalLetterL | CapitalLetterM | CapitalLetterN | CapitalLetterO | CapitalLetterP | CapitalLetterQ | CapitalLetterR | CapitalLetterS | CapitalLetterT | CapitalLetterU | CapitalLetterV | CapitalLetterW | CapitalLetterX | CapitalLetterY | CapitalLetterZ
| LeftSquareBracket | Backslash | RightSquareBracket | Caret | Underscore | GraveAccent
| SmallLetterA | SmallLetterB | SmallLetterC | SmallLetterD | SmallLetterE | SmallLetterF | SmallLetterG | SmallLetterH | SmallLetterI | SmallLetterJ | SmallLetterK | SmallLetterL | SmallLetterM | SmallLetterN | SmallLetterO | SmallLetterP | SmallLetterQ | SmallLetterR | SmallLetterS | SmallLetterT | SmallLetterU | SmallLetterV | SmallLetterW | SmallLetterX | SmallLetterY | SmallLetterZ
| LeftCurlyBracket | VerticalLine | RightCurlyBracket | Tilde | Delete
deriving stock instance Eq Char
deriving stock instance Ord Char
deriving stock instance Enum Char
deriving stock instance Bounded Char
deriving stock instance Show Char
deriving stock instance Data Char
deriving stock instance Generic Char
deriving anyclass instance Hashable Char
toInt :: Char -> Int
toInt :: Char -> Int
toInt = forall a. Enum a => a -> Int
Prelude.fromEnum
fromIntMaybe :: Int -> Maybe Char
fromIntMaybe :: Int -> Maybe Char
fromIntMaybe Int
x | Int
x forall a. Ord a => a -> a -> Bool
< Int
0 = forall a. Maybe a
Nothing
| Int
x forall a. Ord a => a -> a -> Bool
> Int
127 = forall a. Maybe a
Nothing
| Bool
otherwise = forall a. a -> Maybe a
Just (Int -> Char
fromIntUnsafe Int
x)
fromIntUnsafe :: Int -> Char
fromIntUnsafe :: Int -> Char
fromIntUnsafe = forall a. Enum a => Int -> a
Prelude.toEnum
allCharacters :: [Char]
allCharacters :: [Char]
allCharacters = forall a. Enum a => a -> a -> [a]
Prelude.enumFromTo forall a. Bounded a => a
Prelude.minBound forall a. Bounded a => a
Prelude.maxBound