--   This Source Code Form is subject to the terms of the Mozilla Public
--   License, v. 2.0. If a copy of the MPL was not distributed with this
--   file, You can obtain one at http://mozilla.org/MPL/2.0/.

{-# LANGUAGE DerivingStrategies #-}

-- | ASCII character string
module Libjwt.ASCII
  ( ASCII(..)
  )
where

-- | Represents a string consisting of only ASCII characters. 
--   JWT encoding and decoding can safely skip conversion to/from UTF-8 for these values
newtype ASCII = ASCII { ASCII -> String
getASCII :: String}
  deriving stock (ASCII -> ASCII -> Bool
(ASCII -> ASCII -> Bool) -> (ASCII -> ASCII -> Bool) -> Eq ASCII
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ASCII -> ASCII -> Bool
$c/= :: ASCII -> ASCII -> Bool
== :: ASCII -> ASCII -> Bool
$c== :: ASCII -> ASCII -> Bool
Eq, Eq ASCII
Eq ASCII
-> (ASCII -> ASCII -> Ordering)
-> (ASCII -> ASCII -> Bool)
-> (ASCII -> ASCII -> Bool)
-> (ASCII -> ASCII -> Bool)
-> (ASCII -> ASCII -> Bool)
-> (ASCII -> ASCII -> ASCII)
-> (ASCII -> ASCII -> ASCII)
-> Ord ASCII
ASCII -> ASCII -> Bool
ASCII -> ASCII -> Ordering
ASCII -> ASCII -> ASCII
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: ASCII -> ASCII -> ASCII
$cmin :: ASCII -> ASCII -> ASCII
max :: ASCII -> ASCII -> ASCII
$cmax :: ASCII -> ASCII -> ASCII
>= :: ASCII -> ASCII -> Bool
$c>= :: ASCII -> ASCII -> Bool
> :: ASCII -> ASCII -> Bool
$c> :: ASCII -> ASCII -> Bool
<= :: ASCII -> ASCII -> Bool
$c<= :: ASCII -> ASCII -> Bool
< :: ASCII -> ASCII -> Bool
$c< :: ASCII -> ASCII -> Bool
compare :: ASCII -> ASCII -> Ordering
$ccompare :: ASCII -> ASCII -> Ordering
$cp1Ord :: Eq ASCII
Ord, ReadPrec [ASCII]
ReadPrec ASCII
Int -> ReadS ASCII
ReadS [ASCII]
(Int -> ReadS ASCII)
-> ReadS [ASCII]
-> ReadPrec ASCII
-> ReadPrec [ASCII]
-> Read ASCII
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ASCII]
$creadListPrec :: ReadPrec [ASCII]
readPrec :: ReadPrec ASCII
$creadPrec :: ReadPrec ASCII
readList :: ReadS [ASCII]
$creadList :: ReadS [ASCII]
readsPrec :: Int -> ReadS ASCII
$creadsPrec :: Int -> ReadS ASCII
Read, Int -> ASCII -> ShowS
[ASCII] -> ShowS
ASCII -> String
(Int -> ASCII -> ShowS)
-> (ASCII -> String) -> ([ASCII] -> ShowS) -> Show ASCII
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ASCII] -> ShowS
$cshowList :: [ASCII] -> ShowS
show :: ASCII -> String
$cshow :: ASCII -> String
showsPrec :: Int -> ASCII -> ShowS
$cshowsPrec :: Int -> ASCII -> ShowS
Show)