packages feed

unicode-data-security-0.2.0: lib/Unicode/Internal/Char/Security/IntentionalConfusables.hs

-- autogenerated from https://www.unicode.org/Public/15.0.0/ucd/intentional.txt
-- |
-- Module      : Unicode.Internal.Char.Security.IntentionalConfusables
-- Copyright   : (c) 2022 Composewell Technologies and Contributors
-- License     : Apache-2.0
-- Maintainer  : streamly@composewell.com
-- Stability   : experimental

{-# LANGUAGE LambdaCase #-}
{-# OPTIONS_HADDOCK hide #-}

module Unicode.Internal.Char.Security.IntentionalConfusables
(intentionalConfusables)
where

import Foreign.C.String (CString)
import GHC.Exts (Ptr(..))

-- | Returns the /intentional/ confusables of a character, if any.
--
-- The resulting 'CString' is null-terminated and encoded in UTF-8.
--
-- @since 0.1.0
intentionalConfusables :: Char -> Maybe CString
intentionalConfusables = \case
    '!' -> Just (Ptr "\199\131\0"#)
    'A' -> Just (Ptr "\206\145\0"#)
    'B' -> Just (Ptr "\206\146\0"#)
    'C' -> Just (Ptr "\208\161\0"#)
    'E' -> Just (Ptr "\206\149\0"#)
    'H' -> Just (Ptr "\206\151\0"#)
    'I' -> Just (Ptr "\206\153\0"#)
    'J' -> Just (Ptr "\208\136\0"#)
    'K' -> Just (Ptr "\206\154\0"#)
    'M' -> Just (Ptr "\206\156\0"#)
    'N' -> Just (Ptr "\206\157\0"#)
    'O' -> Just (Ptr "\206\159\0"#)
    'P' -> Just (Ptr "\206\161\0"#)
    'S' -> Just (Ptr "\208\133\0"#)
    'T' -> Just (Ptr "\206\164\0"#)
    'X' -> Just (Ptr "\206\167\0"#)
    'Y' -> Just (Ptr "\206\165\0"#)
    'Z' -> Just (Ptr "\206\150\0"#)
    'a' -> Just (Ptr "\208\176\0"#)
    'c' -> Just (Ptr "\209\129\0"#)
    'd' -> Just (Ptr "\212\129\0"#)
    'e' -> Just (Ptr "\208\181\0"#)
    'h' -> Just (Ptr "\210\187\0"#)
    'i' -> Just (Ptr "\209\150\0"#)
    'j' -> Just (Ptr "\207\179\0"#)
    'o' -> Just (Ptr "\206\191\0"#)
    'p' -> Just (Ptr "\209\128\0"#)
    's' -> Just (Ptr "\209\149\0"#)
    'x' -> Just (Ptr "\209\133\0"#)
    'y' -> Just (Ptr "\209\131\0"#)
    '\198' -> Just (Ptr "\211\148\0"#)
    '\208' -> Just (Ptr "\196\144\0"#)
    '\230' -> Just (Ptr "\211\149\0"#)
    '\272' -> Just (Ptr "\195\144\0"#)
    '\312' -> Just (Ptr "\208\186\0"#)
    '\386' -> Just (Ptr "\208\145\0"#)
    '\399' -> Just (Ptr "\211\152\0"#)
    '\415' -> Just (Ptr "\211\168\0"#)
    '\425' -> Just (Ptr "\206\163\0"#)
    '\451' -> Just (Ptr "\33\0"#)
    '\477' -> Just (Ptr "\201\153\0"#)
    '\581' -> Just (Ptr "\206\155\0"#)
    '\601' -> Just (Ptr "\199\157\211\153\0"#)
    '\603' -> Just (Ptr "\206\181\0"#)
    '\617' -> Just (Ptr "\206\185\0"#)
    '\618' -> Just (Ptr "\211\143\0"#)
    '\629' -> Just (Ptr "\211\169\0"#)
    '\658' -> Just (Ptr "\211\161\0"#)
    '\665' -> Just (Ptr "\208\178\0"#)
    '\668' -> Just (Ptr "\208\189\0"#)
    '\913' -> Just (Ptr "\65\0"#)
    '\914' -> Just (Ptr "\66\0"#)
    '\915' -> Just (Ptr "\208\147\0"#)
    '\917' -> Just (Ptr "\69\0"#)
    '\918' -> Just (Ptr "\90\0"#)
    '\919' -> Just (Ptr "\72\0"#)
    '\921' -> Just (Ptr "\73\0"#)
    '\922' -> Just (Ptr "\75\0"#)
    '\923' -> Just (Ptr "\201\133\0"#)
    '\924' -> Just (Ptr "\77\0"#)
    '\925' -> Just (Ptr "\78\0"#)
    '\927' -> Just (Ptr "\79\0"#)
    '\928' -> Just (Ptr "\208\159\0"#)
    '\929' -> Just (Ptr "\80\0"#)
    '\931' -> Just (Ptr "\198\169\0"#)
    '\932' -> Just (Ptr "\84\0"#)
    '\933' -> Just (Ptr "\89\0"#)
    '\935' -> Just (Ptr "\88\0"#)
    '\945' -> Just (Ptr "\226\141\186\0"#)
    '\949' -> Just (Ptr "\201\155\0"#)
    '\953' -> Just (Ptr "\201\169\226\141\179\0"#)
    '\959' -> Just (Ptr "\111\0"#)
    '\961' -> Just (Ptr "\226\141\180\0"#)
    '\969' -> Just (Ptr "\226\141\181\0"#)
    '\1011' -> Just (Ptr "\106\0"#)
    '\1029' -> Just (Ptr "\83\0"#)
    '\1032' -> Just (Ptr "\74\0"#)
    '\1041' -> Just (Ptr "\198\130\0"#)
    '\1043' -> Just (Ptr "\206\147\0"#)
    '\1055' -> Just (Ptr "\206\160\0"#)
    '\1057' -> Just (Ptr "\67\0"#)
    '\1072' -> Just (Ptr "\97\0"#)
    '\1074' -> Just (Ptr "\202\153\0"#)
    '\1075' -> Just (Ptr "\225\180\166\0"#)
    '\1077' -> Just (Ptr "\101\0"#)
    '\1082' -> Just (Ptr "\196\184\0"#)
    '\1083' -> Just (Ptr "\225\180\171\0"#)
    '\1084' -> Just (Ptr "\225\180\141\0"#)
    '\1085' -> Just (Ptr "\202\156\0"#)
    '\1087' -> Just (Ptr "\225\180\168\0"#)
    '\1088' -> Just (Ptr "\112\0"#)
    '\1089' -> Just (Ptr "\99\0"#)
    '\1090' -> Just (Ptr "\225\180\155\0"#)
    '\1091' -> Just (Ptr "\121\0"#)
    '\1093' -> Just (Ptr "\120\0"#)
    '\1109' -> Just (Ptr "\115\0"#)
    '\1110' -> Just (Ptr "\105\0"#)
    '\1178' -> Just (Ptr "\226\177\169\0"#)
    '\1186' -> Just (Ptr "\226\177\167\0"#)
    '\1211' -> Just (Ptr "\104\0"#)
    '\1231' -> Just (Ptr "\201\170\0"#)
    '\1236' -> Just (Ptr "\195\134\0"#)
    '\1237' -> Just (Ptr "\195\166\0"#)
    '\1240' -> Just (Ptr "\198\143\0"#)
    '\1241' -> Just (Ptr "\201\153\0"#)
    '\1249' -> Just (Ptr "\202\146\0"#)
    '\1256' -> Just (Ptr "\198\159\0"#)
    '\1257' -> Just (Ptr "\201\181\0"#)
    '\1281' -> Just (Ptr "\100\0"#)
    '\4125' -> Just (Ptr "\225\129\128\0"#)
    '\4160' -> Just (Ptr "\225\128\157\0"#)
    '\6050' -> Just (Ptr "\225\158\163\0"#)
    '\6051' -> Just (Ptr "\225\158\162\0"#)
    '\6197' -> Just (Ptr "\225\161\149\0"#)
    '\6229' -> Just (Ptr "\225\160\181\0"#)
    '\6558' -> Just (Ptr "\225\167\144\0"#)
    '\6577' -> Just (Ptr "\225\167\145\0"#)
    '\6608' -> Just (Ptr "\225\166\158\0"#)
    '\6609' -> Just (Ptr "\225\166\177\0"#)
    '\6725' -> Just (Ptr "\225\170\128\225\170\144\0"#)
    '\6784' -> Just (Ptr "\225\169\133\0"#)
    '\6800' -> Just (Ptr "\225\169\133\0"#)
    '\6925' -> Just (Ptr "\225\173\146\0"#)
    '\6929' -> Just (Ptr "\225\173\147\0"#)
    '\6952' -> Just (Ptr "\225\173\152\0"#)
    '\6992' -> Just (Ptr "\225\173\156\0"#)
    '\6994' -> Just (Ptr "\225\172\141\0"#)
    '\6995' -> Just (Ptr "\225\172\145\0"#)
    '\7000' -> Just (Ptr "\225\172\168\0"#)
    '\7004' -> Just (Ptr "\225\173\144\0"#)
    '\7437' -> Just (Ptr "\208\188\0"#)
    '\7448' -> Just (Ptr "\225\180\169\0"#)
    '\7451' -> Just (Ptr "\209\130\0"#)
    '\7462' -> Just (Ptr "\208\179\0"#)
    '\7464' -> Just (Ptr "\208\191\0"#)
    '\7465' -> Just (Ptr "\225\180\152\0"#)
    '\7467' -> Just (Ptr "\208\187\0"#)
    '\9075' -> Just (Ptr "\206\185\0"#)
    '\9076' -> Just (Ptr "\207\129\0"#)
    '\9077' -> Just (Ptr "\207\137\0"#)
    '\9082' -> Just (Ptr "\206\177\0"#)
    '\11367' -> Just (Ptr "\210\162\0"#)
    '\11369' -> Just (Ptr "\210\154\0"#)
    '\43462' -> Just (Ptr "\234\167\144\0"#)
    '\43472' -> Just (Ptr "\234\167\134\0"#)
    '\66434' -> Just (Ptr "\240\144\143\145\0"#)
    '\66451' -> Just (Ptr "\240\144\143\147\0"#)
    '\66458' -> Just (Ptr "\240\146\128\184\0"#)
    '\66513' -> Just (Ptr "\240\144\142\130\0"#)
    '\66515' -> Just (Ptr "\240\144\142\147\0"#)
    '\66694' -> Just (Ptr "\240\144\146\160\0"#)
    '\66720' -> Just (Ptr "\240\144\146\134\0"#)
    '\73784' -> Just (Ptr "\240\144\142\154\0"#)
    _ -> Nothing