{-# LINE 1 "Z/Data/Text/UTF8Rewind.hsc" #-}
{-|
Module      : Z.Data.Text.UTF8Rewind
Description : Errno provided by libuv
Copyright   : (c) Winterland, 2017-2018
License     : BSD
Maintainer  : [email protected]
Stability   : experimental
Portability : non-portable

INTERNAL MODULE, provides utf8rewind constants

-}

module Z.Data.Text.UTF8Rewind where

import Foreign.C.Types
import GHC.Generics



-- | Locale for case mapping.
type Locale = CSize 

pattern LocaleDefault              :: Locale 
pattern $mLocaleDefault :: forall {r}. CSize -> ((# #) -> r) -> ((# #) -> r) -> r
$bLocaleDefault :: CSize
LocaleDefault               = 0
{-# LINE 26 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern LocaleLithuanian           :: Locale
pattern $mLocaleLithuanian :: forall {r}. CSize -> ((# #) -> r) -> ((# #) -> r) -> r
$bLocaleLithuanian :: CSize
LocaleLithuanian            = 1
{-# LINE 28 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern LocaleTurkishAndAzeriLatin :: Locale
pattern $mLocaleTurkishAndAzeriLatin :: forall {r}. CSize -> ((# #) -> r) -> ((# #) -> r) -> r
$bLocaleTurkishAndAzeriLatin :: CSize
LocaleTurkishAndAzeriLatin  = 2
{-# LINE 30 "Z/Data/Text/UTF8Rewind.hsc" #-}

-- | Get environment locale
foreign import ccall unsafe "utf8envlocale" envLocale :: IO Locale

{-|
These are the Unicode Normalization Forms:

@
Form                         | Description
---------------------------- | ---------------------------------------------
Normalization Form D (NFD)   | Canonical decomposition
Normalization Form C (NFC)   | Canonical decomposition, followed by canonical composition
Normalization Form KD (NFKD) | Compatibility decomposition
Normalization Form KC (NFKC) | Compatibility decomposition, followed by canonical composition
@ 
-}
data NormalizeMode = NFC | NFKC | NFD | NFKD deriving (Int -> NormalizeMode -> ShowS
[NormalizeMode] -> ShowS
NormalizeMode -> String
(Int -> NormalizeMode -> ShowS)
-> (NormalizeMode -> String)
-> ([NormalizeMode] -> ShowS)
-> Show NormalizeMode
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NormalizeMode -> ShowS
showsPrec :: Int -> NormalizeMode -> ShowS
$cshow :: NormalizeMode -> String
show :: NormalizeMode -> String
$cshowList :: [NormalizeMode] -> ShowS
showList :: [NormalizeMode] -> ShowS
Show, NormalizeMode -> NormalizeMode -> Bool
(NormalizeMode -> NormalizeMode -> Bool)
-> (NormalizeMode -> NormalizeMode -> Bool) -> Eq NormalizeMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NormalizeMode -> NormalizeMode -> Bool
== :: NormalizeMode -> NormalizeMode -> Bool
$c/= :: NormalizeMode -> NormalizeMode -> Bool
/= :: NormalizeMode -> NormalizeMode -> Bool
Eq, Eq NormalizeMode
Eq NormalizeMode =>
(NormalizeMode -> NormalizeMode -> Ordering)
-> (NormalizeMode -> NormalizeMode -> Bool)
-> (NormalizeMode -> NormalizeMode -> Bool)
-> (NormalizeMode -> NormalizeMode -> Bool)
-> (NormalizeMode -> NormalizeMode -> Bool)
-> (NormalizeMode -> NormalizeMode -> NormalizeMode)
-> (NormalizeMode -> NormalizeMode -> NormalizeMode)
-> Ord NormalizeMode
NormalizeMode -> NormalizeMode -> Bool
NormalizeMode -> NormalizeMode -> Ordering
NormalizeMode -> NormalizeMode -> NormalizeMode
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
$ccompare :: NormalizeMode -> NormalizeMode -> Ordering
compare :: NormalizeMode -> NormalizeMode -> Ordering
$c< :: NormalizeMode -> NormalizeMode -> Bool
< :: NormalizeMode -> NormalizeMode -> Bool
$c<= :: NormalizeMode -> NormalizeMode -> Bool
<= :: NormalizeMode -> NormalizeMode -> Bool
$c> :: NormalizeMode -> NormalizeMode -> Bool
> :: NormalizeMode -> NormalizeMode -> Bool
$c>= :: NormalizeMode -> NormalizeMode -> Bool
>= :: NormalizeMode -> NormalizeMode -> Bool
$cmax :: NormalizeMode -> NormalizeMode -> NormalizeMode
max :: NormalizeMode -> NormalizeMode -> NormalizeMode
$cmin :: NormalizeMode -> NormalizeMode -> NormalizeMode
min :: NormalizeMode -> NormalizeMode -> NormalizeMode
Ord, (forall x. NormalizeMode -> Rep NormalizeMode x)
-> (forall x. Rep NormalizeMode x -> NormalizeMode)
-> Generic NormalizeMode
forall x. Rep NormalizeMode x -> NormalizeMode
forall x. NormalizeMode -> Rep NormalizeMode x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. NormalizeMode -> Rep NormalizeMode x
from :: forall x. NormalizeMode -> Rep NormalizeMode x
$cto :: forall x. Rep NormalizeMode x -> NormalizeMode
to :: forall x. Rep NormalizeMode x -> NormalizeMode
Generic)

normalizeModeToFlag :: NormalizeMode -> CSize
normalizeModeToFlag :: NormalizeMode -> CSize
normalizeModeToFlag NormalizeMode
NFC  = CSize
1
{-# LINE 50 "Z/Data/Text/UTF8Rewind.hsc" #-}
normalizeModeToFlag NFKC = 1 + 4
{-# LINE 51 "Z/Data/Text/UTF8Rewind.hsc" #-}
normalizeModeToFlag NFD  = 2
{-# LINE 52 "Z/Data/Text/UTF8Rewind.hsc" #-}
normalizeModeToFlag NFKD = 2 + 4
{-# LINE 53 "Z/Data/Text/UTF8Rewind.hsc" #-}

data NormalizationResult = NormalizedYes | NormalizedMaybe | NormalizedNo deriving (Int -> NormalizationResult -> ShowS
[NormalizationResult] -> ShowS
NormalizationResult -> String
(Int -> NormalizationResult -> ShowS)
-> (NormalizationResult -> String)
-> ([NormalizationResult] -> ShowS)
-> Show NormalizationResult
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NormalizationResult -> ShowS
showsPrec :: Int -> NormalizationResult -> ShowS
$cshow :: NormalizationResult -> String
show :: NormalizationResult -> String
$cshowList :: [NormalizationResult] -> ShowS
showList :: [NormalizationResult] -> ShowS
Show, NormalizationResult -> NormalizationResult -> Bool
(NormalizationResult -> NormalizationResult -> Bool)
-> (NormalizationResult -> NormalizationResult -> Bool)
-> Eq NormalizationResult
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NormalizationResult -> NormalizationResult -> Bool
== :: NormalizationResult -> NormalizationResult -> Bool
$c/= :: NormalizationResult -> NormalizationResult -> Bool
/= :: NormalizationResult -> NormalizationResult -> Bool
Eq, Eq NormalizationResult
Eq NormalizationResult =>
(NormalizationResult -> NormalizationResult -> Ordering)
-> (NormalizationResult -> NormalizationResult -> Bool)
-> (NormalizationResult -> NormalizationResult -> Bool)
-> (NormalizationResult -> NormalizationResult -> Bool)
-> (NormalizationResult -> NormalizationResult -> Bool)
-> (NormalizationResult
    -> NormalizationResult -> NormalizationResult)
-> (NormalizationResult
    -> NormalizationResult -> NormalizationResult)
-> Ord NormalizationResult
NormalizationResult -> NormalizationResult -> Bool
NormalizationResult -> NormalizationResult -> Ordering
NormalizationResult -> NormalizationResult -> NormalizationResult
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
$ccompare :: NormalizationResult -> NormalizationResult -> Ordering
compare :: NormalizationResult -> NormalizationResult -> Ordering
$c< :: NormalizationResult -> NormalizationResult -> Bool
< :: NormalizationResult -> NormalizationResult -> Bool
$c<= :: NormalizationResult -> NormalizationResult -> Bool
<= :: NormalizationResult -> NormalizationResult -> Bool
$c> :: NormalizationResult -> NormalizationResult -> Bool
> :: NormalizationResult -> NormalizationResult -> Bool
$c>= :: NormalizationResult -> NormalizationResult -> Bool
>= :: NormalizationResult -> NormalizationResult -> Bool
$cmax :: NormalizationResult -> NormalizationResult -> NormalizationResult
max :: NormalizationResult -> NormalizationResult -> NormalizationResult
$cmin :: NormalizationResult -> NormalizationResult -> NormalizationResult
min :: NormalizationResult -> NormalizationResult -> NormalizationResult
Ord, (forall x. NormalizationResult -> Rep NormalizationResult x)
-> (forall x. Rep NormalizationResult x -> NormalizationResult)
-> Generic NormalizationResult
forall x. Rep NormalizationResult x -> NormalizationResult
forall x. NormalizationResult -> Rep NormalizationResult x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. NormalizationResult -> Rep NormalizationResult x
from :: forall x. NormalizationResult -> Rep NormalizationResult x
$cto :: forall x. Rep NormalizationResult x -> NormalizationResult
to :: forall x. Rep NormalizationResult x -> NormalizationResult
Generic)

toNormalizationResult :: Int -> NormalizationResult
toNormalizationResult :: Int -> NormalizationResult
toNormalizationResult Int
0 = NormalizationResult
NormalizedYes
{-# LINE 58 "Z/Data/Text/UTF8Rewind.hsc" #-}
toNormalizationResult 1 = NormalizedMaybe
{-# LINE 59 "Z/Data/Text/UTF8Rewind.hsc" #-}
toNormalizationResult 2 = NormalizedNo
{-# LINE 60 "Z/Data/Text/UTF8Rewind.hsc" #-}


-- | Unicode categories.
--
-- See 'Z.Data.Text.Base.isCategory', you can combine categories with bitwise or.
type Category = CSize 

pattern CategoryLetterUppercase       :: Category
pattern CategoryLetterLowercase       :: Category
pattern CategoryLetterTitlecase       :: Category
pattern CategoryLetterOther           :: Category
pattern CategoryLetter                :: Category
pattern CategoryCaseMapped            :: Category
pattern $mCategoryLetterUppercase :: forall {r}. CSize -> ((# #) -> r) -> ((# #) -> r) -> r
$bCategoryLetterUppercase :: CSize
CategoryLetterUppercase        = 1
{-# LINE 74 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryLetterLowercase        = 2
{-# LINE 75 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryLetterTitlecase        = 4
{-# LINE 76 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryLetterOther            = 16
{-# LINE 77 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryLetter                 = 31
{-# LINE 78 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryCaseMapped             = 7
{-# LINE 79 "Z/Data/Text/UTF8Rewind.hsc" #-}

pattern CategoryMarkNonSpacing        :: Category  
pattern CategoryMarkSpacing           :: Category  
pattern CategoryMarkEnclosing         :: Category  
pattern CategoryMark                  :: Category  
pattern $mCategoryMarkNonSpacing :: forall {r}. CSize -> ((# #) -> r) -> ((# #) -> r) -> r
$bCategoryMarkNonSpacing :: CSize
CategoryMarkNonSpacing         = 32
{-# LINE 85 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryMarkSpacing            = 64
{-# LINE 86 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryMarkEnclosing          = 128
{-# LINE 87 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryMark                   = 224
{-# LINE 88 "Z/Data/Text/UTF8Rewind.hsc" #-}

pattern CategoryNumberDecimal         :: Category 
pattern CategoryNumberLetter          :: Category 
pattern CategoryNumberOther           :: Category 
pattern CategoryNumber                :: Category 
pattern $mCategoryNumberDecimal :: forall {r}. CSize -> ((# #) -> r) -> ((# #) -> r) -> r
$bCategoryNumberDecimal :: CSize
CategoryNumberDecimal          = 256
{-# LINE 94 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryNumberLetter           = 512
{-# LINE 95 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryNumberOther            = 1024
{-# LINE 96 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryNumber                 = 1792
{-# LINE 97 "Z/Data/Text/UTF8Rewind.hsc" #-}

pattern CategoryPunctuationConnector  :: Category
pattern CategoryPunctuationDash       :: Category
pattern CategoryPunctuationOpen       :: Category
pattern CategoryPunctuationClose      :: Category
pattern CategoryPunctuationInitial    :: Category
pattern CategoryPunctuationFinal      :: Category
pattern CategoryPunctuationOther      :: Category
pattern CategoryPunctuation           :: Category
pattern $mCategoryPunctuationConnector :: forall {r}. CSize -> ((# #) -> r) -> ((# #) -> r) -> r
$bCategoryPunctuationConnector :: CSize
CategoryPunctuationConnector   = 2048
{-# LINE 107 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryPunctuationDash        = 4096
{-# LINE 108 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryPunctuationOpen        = 8192
{-# LINE 109 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryPunctuationClose       = 16384
{-# LINE 110 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryPunctuationInitial     = 32768
{-# LINE 111 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryPunctuationFinal       = 65536
{-# LINE 112 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryPunctuationOther       = 131072
{-# LINE 113 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryPunctuation            = 260096
{-# LINE 114 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategorySymbolMath            :: Category 
pattern CategorySymbolCurrency        :: Category 
pattern CategorySymbolModifier        :: Category 
pattern CategorySymbolOther           :: Category 
pattern CategorySymbol                :: Category 
pattern $mCategorySymbolMath :: forall {r}. CSize -> ((# #) -> r) -> ((# #) -> r) -> r
$bCategorySymbolMath :: CSize
CategorySymbolMath             = 262144
{-# LINE 120 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategorySymbolCurrency         = 524288
{-# LINE 121 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategorySymbolModifier         = 1048576
{-# LINE 122 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategorySymbolOther            = 2097152
{-# LINE 123 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategorySymbol                 = 3932160
{-# LINE 124 "Z/Data/Text/UTF8Rewind.hsc" #-}

pattern CategorySeparatorSpace        :: Category 
pattern CategorySeparatorLine         :: Category 
pattern CategorySeparatorParagraph    :: Category 
pattern CategorySeparator             :: Category 
pattern CategoryControl               :: Category 
pattern CategoryFormat                :: Category 
pattern CategorySurrogate             :: Category 
pattern CategoryPrivateUse            :: Category 
pattern CategoryUnassigned            :: Category 
pattern CategoryCompatibility         :: Category 
pattern CategoryIgnoreGraphemeCluster :: Category 
pattern CategoryIscntrl               :: Category 
pattern $mCategorySeparatorSpace :: forall {r}. CSize -> ((# #) -> r) -> ((# #) -> r) -> r
$bCategorySeparatorSpace :: CSize
CategorySeparatorSpace         = 4194304
{-# LINE 138 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategorySeparatorLine          = 8388608
{-# LINE 139 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategorySeparatorParagraph     = 16777216
{-# LINE 140 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategorySeparator              = 29360128
{-# LINE 141 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryControl                = 33554432
{-# LINE 142 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryFormat                 = 67108864
{-# LINE 143 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategorySurrogate              = 134217728
{-# LINE 144 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryPrivateUse             = 268435456
{-# LINE 145 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryUnassigned             = 536870912
{-# LINE 146 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryCompatibility          = 1073741824
{-# LINE 147 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryIgnoreGraphemeCluster  = 2147483648
{-# LINE 148 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryIscntrl                = 1107296256
{-# LINE 149 "Z/Data/Text/UTF8Rewind.hsc" #-}

pattern CategoryIsprint               :: Category
pattern CategoryIsspace               :: Category
pattern CategoryIsblank               :: Category
pattern CategoryIsgraph               :: Category
pattern CategoryIspunct               :: Category
pattern CategoryIsalnum               :: Category
pattern CategoryIsalpha               :: Category
pattern CategoryIsupper               :: Category
pattern CategoryIslower               :: Category
pattern CategoryIsdigit               :: Category
pattern CategoryIsxdigit              :: Category
pattern $mCategoryIsprint :: forall {r}. CSize -> ((# #) -> r) -> ((# #) -> r) -> r
$bCategoryIsprint :: CSize
CategoryIsprint                = 1107296031
{-# LINE 162 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryIsspace                = 1077936128
{-# LINE 163 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryIsblank                = 1346371584
{-# LINE 164 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryIsgraph                = 1077935903
{-# LINE 165 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryIspunct                = 1077934080
{-# LINE 166 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryIsalnum                = 1073743647
{-# LINE 167 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryIsalpha                = 1073741855
{-# LINE 168 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryIsupper                = 1073741825
{-# LINE 169 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryIslower                = 1073741826
{-# LINE 170 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryIsdigit                = 1073743616
{-# LINE 171 "Z/Data/Text/UTF8Rewind.hsc" #-}
pattern CategoryIsxdigit               = 1342179072
{-# LINE 172 "Z/Data/Text/UTF8Rewind.hsc" #-}