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