https-everywhere-rules/src/Data/HTTPSEverywhere/Rules/Internal/Types.hs

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]
}