module Hix.Data.GhciTest where

import Path (Abs, Dir, File, Path)

import Hix.Data.GhciConfig (GhciArgs)

data GhciTest =
  GhciTest {
    GhciTest -> GhciArgs
args :: GhciArgs,
    GhciTest -> [Path Abs Dir]
searchPath :: [Path Abs Dir],
    GhciTest -> Text
script :: Text,
    GhciTest -> Maybe Text
test :: Maybe Text
  }
  deriving stock (GhciTest -> GhciTest -> Bool
(GhciTest -> GhciTest -> Bool)
-> (GhciTest -> GhciTest -> Bool) -> Eq GhciTest
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: GhciTest -> GhciTest -> Bool
== :: GhciTest -> GhciTest -> Bool
$c/= :: GhciTest -> GhciTest -> Bool
/= :: GhciTest -> GhciTest -> Bool
Eq, Int -> GhciTest -> ShowS
[GhciTest] -> ShowS
GhciTest -> String
(Int -> GhciTest -> ShowS)
-> (GhciTest -> String) -> ([GhciTest] -> ShowS) -> Show GhciTest
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GhciTest -> ShowS
showsPrec :: Int -> GhciTest -> ShowS
$cshow :: GhciTest -> String
show :: GhciTest -> String
$cshowList :: [GhciTest] -> ShowS
showList :: [GhciTest] -> ShowS
Show, (forall x. GhciTest -> Rep GhciTest x)
-> (forall x. Rep GhciTest x -> GhciTest) -> Generic GhciTest
forall x. Rep GhciTest x -> GhciTest
forall x. GhciTest -> Rep GhciTest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. GhciTest -> Rep GhciTest x
from :: forall x. GhciTest -> Rep GhciTest x
$cto :: forall x. Rep GhciTest x -> GhciTest
to :: forall x. Rep GhciTest x -> GhciTest
Generic)

data GhciRun =
  GhciRun {
    GhciRun -> GhciTest
test :: GhciTest,
    GhciRun -> Text
shell :: Text,
    GhciRun -> Maybe Text
run :: Maybe Text,
    GhciRun -> Path Abs File
scriptFile :: Path Abs File,
    GhciRun -> Text
cmdline :: Text
  }
  deriving stock (GhciRun -> GhciRun -> Bool
(GhciRun -> GhciRun -> Bool)
-> (GhciRun -> GhciRun -> Bool) -> Eq GhciRun
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: GhciRun -> GhciRun -> Bool
== :: GhciRun -> GhciRun -> Bool
$c/= :: GhciRun -> GhciRun -> Bool
/= :: GhciRun -> GhciRun -> Bool
Eq, Int -> GhciRun -> ShowS
[GhciRun] -> ShowS
GhciRun -> String
(Int -> GhciRun -> ShowS)
-> (GhciRun -> String) -> ([GhciRun] -> ShowS) -> Show GhciRun
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GhciRun -> ShowS
showsPrec :: Int -> GhciRun -> ShowS
$cshow :: GhciRun -> String
show :: GhciRun -> String
$cshowList :: [GhciRun] -> ShowS
showList :: [GhciRun] -> ShowS
Show, (forall x. GhciRun -> Rep GhciRun x)
-> (forall x. Rep GhciRun x -> GhciRun) -> Generic GhciRun
forall x. Rep GhciRun x -> GhciRun
forall x. GhciRun -> Rep GhciRun x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. GhciRun -> Rep GhciRun x
from :: forall x. GhciRun -> Rep GhciRun x
$cto :: forall x. Rep GhciRun x -> GhciRun
to :: forall x. Rep GhciRun x -> GhciRun
Generic)

data GhcidRun =
  GhcidRun {
    GhcidRun -> Text
cmdline :: Text,
    GhcidRun -> GhciRun
ghci :: GhciRun
  }
  deriving stock (GhcidRun -> GhcidRun -> Bool
(GhcidRun -> GhcidRun -> Bool)
-> (GhcidRun -> GhcidRun -> Bool) -> Eq GhcidRun
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: GhcidRun -> GhcidRun -> Bool
== :: GhcidRun -> GhcidRun -> Bool
$c/= :: GhcidRun -> GhcidRun -> Bool
/= :: GhcidRun -> GhcidRun -> Bool
Eq, Int -> GhcidRun -> ShowS
[GhcidRun] -> ShowS
GhcidRun -> String
(Int -> GhcidRun -> ShowS)
-> (GhcidRun -> String) -> ([GhcidRun] -> ShowS) -> Show GhcidRun
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GhcidRun -> ShowS
showsPrec :: Int -> GhcidRun -> ShowS
$cshow :: GhcidRun -> String
show :: GhcidRun -> String
$cshowList :: [GhcidRun] -> ShowS
showList :: [GhcidRun] -> ShowS
Show, (forall x. GhcidRun -> Rep GhcidRun x)
-> (forall x. Rep GhcidRun x -> GhcidRun) -> Generic GhcidRun
forall x. Rep GhcidRun x -> GhcidRun
forall x. GhcidRun -> Rep GhcidRun x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. GhcidRun -> Rep GhcidRun x
from :: forall x. GhcidRun -> Rep GhcidRun x
$cto :: forall x. Rep GhcidRun x -> GhcidRun
to :: forall x. Rep GhcidRun x -> GhcidRun
Generic)