module Hix.Managed.Data.Query where
import GHC.Exts (IsList)
import Hix.Data.PackageName (PackageName)
import Hix.Managed.Data.QueryDep (QueryDep)
newtype RawQuery =
RawQuery [PackageName]
deriving stock (RawQuery -> RawQuery -> Bool
(RawQuery -> RawQuery -> Bool)
-> (RawQuery -> RawQuery -> Bool) -> Eq RawQuery
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RawQuery -> RawQuery -> Bool
== :: RawQuery -> RawQuery -> Bool
$c/= :: RawQuery -> RawQuery -> Bool
/= :: RawQuery -> RawQuery -> Bool
Eq, Int -> RawQuery -> ShowS
[RawQuery] -> ShowS
RawQuery -> String
(Int -> RawQuery -> ShowS)
-> (RawQuery -> String) -> ([RawQuery] -> ShowS) -> Show RawQuery
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> RawQuery -> ShowS
showsPrec :: Int -> RawQuery -> ShowS
$cshow :: RawQuery -> String
show :: RawQuery -> String
$cshowList :: [RawQuery] -> ShowS
showList :: [RawQuery] -> ShowS
Show, (forall x. RawQuery -> Rep RawQuery x)
-> (forall x. Rep RawQuery x -> RawQuery) -> Generic RawQuery
forall x. Rep RawQuery x -> RawQuery
forall x. RawQuery -> Rep RawQuery x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. RawQuery -> Rep RawQuery x
from :: forall x. RawQuery -> Rep RawQuery x
$cto :: forall x. Rep RawQuery x -> RawQuery
to :: forall x. Rep RawQuery x -> RawQuery
Generic)
deriving newtype (Int -> [Item RawQuery] -> RawQuery
[Item RawQuery] -> RawQuery
RawQuery -> [Item RawQuery]
([Item RawQuery] -> RawQuery)
-> (Int -> [Item RawQuery] -> RawQuery)
-> (RawQuery -> [Item RawQuery])
-> IsList RawQuery
forall l.
([Item l] -> l)
-> (Int -> [Item l] -> l) -> (l -> [Item l]) -> IsList l
$cfromList :: [Item RawQuery] -> RawQuery
fromList :: [Item RawQuery] -> RawQuery
$cfromListN :: Int -> [Item RawQuery] -> RawQuery
fromListN :: Int -> [Item RawQuery] -> RawQuery
$ctoList :: RawQuery -> [Item RawQuery]
toList :: RawQuery -> [Item RawQuery]
IsList)
newtype Query =
Query (NonEmpty QueryDep)
deriving stock (Query -> Query -> Bool
(Query -> Query -> Bool) -> (Query -> Query -> Bool) -> Eq Query
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Query -> Query -> Bool
== :: Query -> Query -> Bool
$c/= :: Query -> Query -> Bool
/= :: Query -> Query -> Bool
Eq, Int -> Query -> ShowS
[Query] -> ShowS
Query -> String
(Int -> Query -> ShowS)
-> (Query -> String) -> ([Query] -> ShowS) -> Show Query
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Query -> ShowS
showsPrec :: Int -> Query -> ShowS
$cshow :: Query -> String
show :: Query -> String
$cshowList :: [Query] -> ShowS
showList :: [Query] -> ShowS
Show, (forall x. Query -> Rep Query x)
-> (forall x. Rep Query x -> Query) -> Generic Query
forall x. Rep Query x -> Query
forall x. Query -> Rep Query x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. Query -> Rep Query x
from :: forall x. Query -> Rep Query x
$cto :: forall x. Rep Query x -> Query
to :: forall x. Rep Query x -> Query
Generic)