bitset-word8-0.1.0.0: src/Data/BitSetWord8.hs
{-|
Module : Network.BitSetWord8
Copyright : (c) Naoto Shimazaki 2017
License : MIT (see the file LICENSE)
Maintainer : https://github.com/nshimaza
Stability : experimental
Space efficient set of 'Word8' and some pre-canned sets useful for parsing HTTP related 'ByteString'.
This packaged is intended to provide O(1) membership test on any subset of ASCII and Latin-1 character set
in order to write efficient HTTP related parser.
=== Creating your own set
You can create your own set by 'fromList'.
@
myCharSet :: BitSetWord8
myCharSet = fromList [ 'Y', 'y', 'N', 'n' ]
@
You can create pre-evaluated set using Template Haskell.
@
{-# LANGUAGE TemplateHaskell #-}
import Language.Haskell.TH.Syntax (Lift, lift)
myPreEvaluatedCharSet :: BitSetWord8
myPreEvaluatedCharSet = $(lift myCharSet)
@
-}
{-# LANGUAGE DeriveLift #-}
module Data.BitSetWord8
(
-- * Types
BitSetWord8
-- * Useful charset constants in BitSetWord8
, rfc3986UriReference
, rfc7230TChar
, rfc7230QDText
, rfc7230QuotedPair
-- * Source Constants
, rfc3986UriReference'
, rfc7230QDText'
, rfc7230QuotedPair'
, rfc5234Digit'
, rfc2616UpAlpha'
, rfc2616LoAlpha'
, rfc5234Alpha'
, rfc5234HexDig'
, rfc5234VChar'
, rfc5324Wsp'
, rfc3986SubDelims'
, rfc3986GenDelims'
, rfc3986Reserved'
, rfc3986Unreserved'
, rfc3986PctEncodedChar'
, rfc3986PChar'
, rfc7230TChar'
, rfc7230ObsText'
-- * Functions
, fromList
, member
) where
import Data.BitSetWord8.Internal
import Data.BitSetWord8.CharSets