module Network.DNS.Pattern.Internal
( DomainLabel(..)
, Domain(..)
, LabelPattern(..)
, DomainPattern(..)
)
where
import Network.DNS.Internal
newtype DomainPattern = DomainPattern
{ DomainPattern -> [LabelPattern]
getDomainPattern :: [LabelPattern]
} deriving (DomainPattern -> DomainPattern -> Bool
(DomainPattern -> DomainPattern -> Bool)
-> (DomainPattern -> DomainPattern -> Bool) -> Eq DomainPattern
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DomainPattern -> DomainPattern -> Bool
$c/= :: DomainPattern -> DomainPattern -> Bool
== :: DomainPattern -> DomainPattern -> Bool
$c== :: DomainPattern -> DomainPattern -> Bool
Eq, Eq DomainPattern
Eq DomainPattern
-> (DomainPattern -> DomainPattern -> Ordering)
-> (DomainPattern -> DomainPattern -> Bool)
-> (DomainPattern -> DomainPattern -> Bool)
-> (DomainPattern -> DomainPattern -> Bool)
-> (DomainPattern -> DomainPattern -> Bool)
-> (DomainPattern -> DomainPattern -> DomainPattern)
-> (DomainPattern -> DomainPattern -> DomainPattern)
-> Ord DomainPattern
DomainPattern -> DomainPattern -> Bool
DomainPattern -> DomainPattern -> Ordering
DomainPattern -> DomainPattern -> DomainPattern
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: DomainPattern -> DomainPattern -> DomainPattern
$cmin :: DomainPattern -> DomainPattern -> DomainPattern
max :: DomainPattern -> DomainPattern -> DomainPattern
$cmax :: DomainPattern -> DomainPattern -> DomainPattern
>= :: DomainPattern -> DomainPattern -> Bool
$c>= :: DomainPattern -> DomainPattern -> Bool
> :: DomainPattern -> DomainPattern -> Bool
$c> :: DomainPattern -> DomainPattern -> Bool
<= :: DomainPattern -> DomainPattern -> Bool
$c<= :: DomainPattern -> DomainPattern -> Bool
< :: DomainPattern -> DomainPattern -> Bool
$c< :: DomainPattern -> DomainPattern -> Bool
compare :: DomainPattern -> DomainPattern -> Ordering
$ccompare :: DomainPattern -> DomainPattern -> Ordering
Ord)
data LabelPattern
= DomLiteral DomainLabel
| DomGlob
| DomGlobStar
deriving (LabelPattern -> LabelPattern -> Bool
(LabelPattern -> LabelPattern -> Bool)
-> (LabelPattern -> LabelPattern -> Bool) -> Eq LabelPattern
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LabelPattern -> LabelPattern -> Bool
$c/= :: LabelPattern -> LabelPattern -> Bool
== :: LabelPattern -> LabelPattern -> Bool
$c== :: LabelPattern -> LabelPattern -> Bool
Eq, Eq LabelPattern
Eq LabelPattern
-> (LabelPattern -> LabelPattern -> Ordering)
-> (LabelPattern -> LabelPattern -> Bool)
-> (LabelPattern -> LabelPattern -> Bool)
-> (LabelPattern -> LabelPattern -> Bool)
-> (LabelPattern -> LabelPattern -> Bool)
-> (LabelPattern -> LabelPattern -> LabelPattern)
-> (LabelPattern -> LabelPattern -> LabelPattern)
-> Ord LabelPattern
LabelPattern -> LabelPattern -> Bool
LabelPattern -> LabelPattern -> Ordering
LabelPattern -> LabelPattern -> LabelPattern
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: LabelPattern -> LabelPattern -> LabelPattern
$cmin :: LabelPattern -> LabelPattern -> LabelPattern
max :: LabelPattern -> LabelPattern -> LabelPattern
$cmax :: LabelPattern -> LabelPattern -> LabelPattern
>= :: LabelPattern -> LabelPattern -> Bool
$c>= :: LabelPattern -> LabelPattern -> Bool
> :: LabelPattern -> LabelPattern -> Bool
$c> :: LabelPattern -> LabelPattern -> Bool
<= :: LabelPattern -> LabelPattern -> Bool
$c<= :: LabelPattern -> LabelPattern -> Bool
< :: LabelPattern -> LabelPattern -> Bool
$c< :: LabelPattern -> LabelPattern -> Bool
compare :: LabelPattern -> LabelPattern -> Ordering
$ccompare :: LabelPattern -> LabelPattern -> Ordering
Ord)