-- | -- Module : Data.Text.Internal.Encoding.Utf32 -- Copyright : (c) 2008, 2009 Tom Harper, -- (c) 2009, 2010 Bryan O'Sullivan, -- (c) 2009 Duncan Coutts -- -- License : BSD-style -- Maintainer : bos@serpentine.com -- Stability : experimental -- Portability : portable -- -- /Warning/: this is an internal module, and does not have a stable -- API or name. Functions in this module may not check or enforce -- preconditions expected by public modules. Use at your own risk! -- -- Basic UTF-32 validation. module Data.Text.Internal.Encoding.Utf32 ( validate ) where import Data.Word (Word32) validate :: Word32 -> Bool validate :: Word32 -> Bool validate Word32 x1 = Word32 x1 Word32 -> Word32 -> Bool forall a. Ord a => a -> a -> Bool < Word32 0xD800 Bool -> Bool -> Bool || (Word32 x1 Word32 -> Word32 -> Bool forall a. Ord a => a -> a -> Bool > Word32 0xDFFF Bool -> Bool -> Bool && Word32 x1 Word32 -> Word32 -> Bool forall a. Ord a => a -> a -> Bool <= Word32 0x10FFFF) {-# INLINE validate #-}