24 lines
672 B
Haskell
24 lines
672 B
Haskell
|
module Data.HTTPSEverywhere.Rules.Internal.Types (
|
||
|
RuleSet(..),
|
||
|
Target(..),
|
||
|
Rule(..),
|
||
|
Exclusion(..),
|
||
|
CookieRule(..)
|
||
|
) where
|
||
|
|
||
|
import Data.Text (Text)
|
||
|
import Network.HTTP.Client (Cookie)
|
||
|
|
||
|
newtype Rule = Rule { getRule :: Text -> Maybe Text }
|
||
|
newtype Target = Target { getTarget :: Text -> Bool }
|
||
|
newtype Exclusion = Exclusion { getExclusion :: Text -> Bool }
|
||
|
newtype CookieRule = CookieRule { getCookieRule :: Cookie -> Bool }
|
||
|
|
||
|
data RuleSet = RuleSet
|
||
|
{ ruleSetName :: Text
|
||
|
, ruleSetTargets :: [Target]
|
||
|
, ruleSetRules :: [Rule]
|
||
|
, ruleSetExclusions :: [Exclusion]
|
||
|
, ruleSetCookieRules :: [CookieRule]
|
||
|
}
|