{-# LANGUAGE CPP #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}

module Data.Text.CaseSensitivity where

import Control.DeepSeq (NFData)
import Data.Hashable (Hashable)
import GHC.Generics (Generic)
#if defined(HAS_AESON)
import Data.Aeson (FromJSON, ToJSON)
#endif
data CaseSensitivity
  = CaseSensitive
  | IgnoreCase
  deriving stock (CaseSensitivity -> CaseSensitivity -> Bool
(CaseSensitivity -> CaseSensitivity -> Bool)
-> (CaseSensitivity -> CaseSensitivity -> Bool)
-> Eq CaseSensitivity
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CaseSensitivity -> CaseSensitivity -> Bool
== :: CaseSensitivity -> CaseSensitivity -> Bool
$c/= :: CaseSensitivity -> CaseSensitivity -> Bool
/= :: CaseSensitivity -> CaseSensitivity -> Bool
Eq, (forall x. CaseSensitivity -> Rep CaseSensitivity x)
-> (forall x. Rep CaseSensitivity x -> CaseSensitivity)
-> Generic CaseSensitivity
forall x. Rep CaseSensitivity x -> CaseSensitivity
forall x. CaseSensitivity -> Rep CaseSensitivity x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. CaseSensitivity -> Rep CaseSensitivity x
from :: forall x. CaseSensitivity -> Rep CaseSensitivity x
$cto :: forall x. Rep CaseSensitivity x -> CaseSensitivity
to :: forall x. Rep CaseSensitivity x -> CaseSensitivity
Generic, Int -> CaseSensitivity -> ShowS
[CaseSensitivity] -> ShowS
CaseSensitivity -> String
(Int -> CaseSensitivity -> ShowS)
-> (CaseSensitivity -> String)
-> ([CaseSensitivity] -> ShowS)
-> Show CaseSensitivity
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CaseSensitivity -> ShowS
showsPrec :: Int -> CaseSensitivity -> ShowS
$cshow :: CaseSensitivity -> String
show :: CaseSensitivity -> String
$cshowList :: [CaseSensitivity] -> ShowS
showList :: [CaseSensitivity] -> ShowS
Show)
#if defined(HAS_AESON)
  deriving anyclass (Eq CaseSensitivity
Eq CaseSensitivity =>
(Int -> CaseSensitivity -> Int)
-> (CaseSensitivity -> Int) -> Hashable CaseSensitivity
Int -> CaseSensitivity -> Int
CaseSensitivity -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> CaseSensitivity -> Int
hashWithSalt :: Int -> CaseSensitivity -> Int
$chash :: CaseSensitivity -> Int
hash :: CaseSensitivity -> Int
Hashable, CaseSensitivity -> ()
(CaseSensitivity -> ()) -> NFData CaseSensitivity
forall a. (a -> ()) -> NFData a
$crnf :: CaseSensitivity -> ()
rnf :: CaseSensitivity -> ()
NFData, Maybe CaseSensitivity
Value -> Parser [CaseSensitivity]
Value -> Parser CaseSensitivity
(Value -> Parser CaseSensitivity)
-> (Value -> Parser [CaseSensitivity])
-> Maybe CaseSensitivity
-> FromJSON CaseSensitivity
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser CaseSensitivity
parseJSON :: Value -> Parser CaseSensitivity
$cparseJSONList :: Value -> Parser [CaseSensitivity]
parseJSONList :: Value -> Parser [CaseSensitivity]
$comittedField :: Maybe CaseSensitivity
omittedField :: Maybe CaseSensitivity
FromJSON, [CaseSensitivity] -> Value
[CaseSensitivity] -> Encoding
CaseSensitivity -> Bool
CaseSensitivity -> Value
CaseSensitivity -> Encoding
(CaseSensitivity -> Value)
-> (CaseSensitivity -> Encoding)
-> ([CaseSensitivity] -> Value)
-> ([CaseSensitivity] -> Encoding)
-> (CaseSensitivity -> Bool)
-> ToJSON CaseSensitivity
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: CaseSensitivity -> Value
toJSON :: CaseSensitivity -> Value
$ctoEncoding :: CaseSensitivity -> Encoding
toEncoding :: CaseSensitivity -> Encoding
$ctoJSONList :: [CaseSensitivity] -> Value
toJSONList :: [CaseSensitivity] -> Value
$ctoEncodingList :: [CaseSensitivity] -> Encoding
toEncodingList :: [CaseSensitivity] -> Encoding
$comitField :: CaseSensitivity -> Bool
omitField :: CaseSensitivity -> Bool
ToJSON)
#else
  deriving anyclass (Hashable, NFData)
#endif