module Hix.Data.NewProjectConfig where

newtype ProjectName =
  ProjectName { ProjectName -> Text
unProjectName :: Text }
  deriving stock (ProjectName -> ProjectName -> Bool
(ProjectName -> ProjectName -> Bool)
-> (ProjectName -> ProjectName -> Bool) -> Eq ProjectName
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ProjectName -> ProjectName -> Bool
== :: ProjectName -> ProjectName -> Bool
$c/= :: ProjectName -> ProjectName -> Bool
/= :: ProjectName -> ProjectName -> Bool
Eq, Int -> ProjectName -> ShowS
[ProjectName] -> ShowS
ProjectName -> String
(Int -> ProjectName -> ShowS)
-> (ProjectName -> String)
-> ([ProjectName] -> ShowS)
-> Show ProjectName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ProjectName -> ShowS
showsPrec :: Int -> ProjectName -> ShowS
$cshow :: ProjectName -> String
show :: ProjectName -> String
$cshowList :: [ProjectName] -> ShowS
showList :: [ProjectName] -> ShowS
Show, (forall x. ProjectName -> Rep ProjectName x)
-> (forall x. Rep ProjectName x -> ProjectName)
-> Generic ProjectName
forall x. Rep ProjectName x -> ProjectName
forall x. ProjectName -> Rep ProjectName x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ProjectName -> Rep ProjectName x
from :: forall x. ProjectName -> Rep ProjectName x
$cto :: forall x. Rep ProjectName x -> ProjectName
to :: forall x. Rep ProjectName x -> ProjectName
Generic)
  deriving newtype (String -> ProjectName
(String -> ProjectName) -> IsString ProjectName
forall a. (String -> a) -> IsString a
$cfromString :: String -> ProjectName
fromString :: String -> ProjectName
IsString, Eq ProjectName
Eq ProjectName
-> (ProjectName -> ProjectName -> Ordering)
-> (ProjectName -> ProjectName -> Bool)
-> (ProjectName -> ProjectName -> Bool)
-> (ProjectName -> ProjectName -> Bool)
-> (ProjectName -> ProjectName -> Bool)
-> (ProjectName -> ProjectName -> ProjectName)
-> (ProjectName -> ProjectName -> ProjectName)
-> Ord ProjectName
ProjectName -> ProjectName -> Bool
ProjectName -> ProjectName -> Ordering
ProjectName -> ProjectName -> ProjectName
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
$ccompare :: ProjectName -> ProjectName -> Ordering
compare :: ProjectName -> ProjectName -> Ordering
$c< :: ProjectName -> ProjectName -> Bool
< :: ProjectName -> ProjectName -> Bool
$c<= :: ProjectName -> ProjectName -> Bool
<= :: ProjectName -> ProjectName -> Bool
$c> :: ProjectName -> ProjectName -> Bool
> :: ProjectName -> ProjectName -> Bool
$c>= :: ProjectName -> ProjectName -> Bool
>= :: ProjectName -> ProjectName -> Bool
$cmax :: ProjectName -> ProjectName -> ProjectName
max :: ProjectName -> ProjectName -> ProjectName
$cmin :: ProjectName -> ProjectName -> ProjectName
min :: ProjectName -> ProjectName -> ProjectName
Ord)

newtype HixUrl =
  HixUrl { HixUrl -> Text
unHixUrl :: Text }
  deriving stock (HixUrl -> HixUrl -> Bool
(HixUrl -> HixUrl -> Bool)
-> (HixUrl -> HixUrl -> Bool) -> Eq HixUrl
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HixUrl -> HixUrl -> Bool
== :: HixUrl -> HixUrl -> Bool
$c/= :: HixUrl -> HixUrl -> Bool
/= :: HixUrl -> HixUrl -> Bool
Eq, Int -> HixUrl -> ShowS
[HixUrl] -> ShowS
HixUrl -> String
(Int -> HixUrl -> ShowS)
-> (HixUrl -> String) -> ([HixUrl] -> ShowS) -> Show HixUrl
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HixUrl -> ShowS
showsPrec :: Int -> HixUrl -> ShowS
$cshow :: HixUrl -> String
show :: HixUrl -> String
$cshowList :: [HixUrl] -> ShowS
showList :: [HixUrl] -> ShowS
Show, (forall x. HixUrl -> Rep HixUrl x)
-> (forall x. Rep HixUrl x -> HixUrl) -> Generic HixUrl
forall x. Rep HixUrl x -> HixUrl
forall x. HixUrl -> Rep HixUrl x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. HixUrl -> Rep HixUrl x
from :: forall x. HixUrl -> Rep HixUrl x
$cto :: forall x. Rep HixUrl x -> HixUrl
to :: forall x. Rep HixUrl x -> HixUrl
Generic)
  deriving newtype (String -> HixUrl
(String -> HixUrl) -> IsString HixUrl
forall a. (String -> a) -> IsString a
$cfromString :: String -> HixUrl
fromString :: String -> HixUrl
IsString, Eq HixUrl
Eq HixUrl
-> (HixUrl -> HixUrl -> Ordering)
-> (HixUrl -> HixUrl -> Bool)
-> (HixUrl -> HixUrl -> Bool)
-> (HixUrl -> HixUrl -> Bool)
-> (HixUrl -> HixUrl -> Bool)
-> (HixUrl -> HixUrl -> HixUrl)
-> (HixUrl -> HixUrl -> HixUrl)
-> Ord HixUrl
HixUrl -> HixUrl -> Bool
HixUrl -> HixUrl -> Ordering
HixUrl -> HixUrl -> HixUrl
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
$ccompare :: HixUrl -> HixUrl -> Ordering
compare :: HixUrl -> HixUrl -> Ordering
$c< :: HixUrl -> HixUrl -> Bool
< :: HixUrl -> HixUrl -> Bool
$c<= :: HixUrl -> HixUrl -> Bool
<= :: HixUrl -> HixUrl -> Bool
$c> :: HixUrl -> HixUrl -> Bool
> :: HixUrl -> HixUrl -> Bool
$c>= :: HixUrl -> HixUrl -> Bool
>= :: HixUrl -> HixUrl -> Bool
$cmax :: HixUrl -> HixUrl -> HixUrl
max :: HixUrl -> HixUrl -> HixUrl
$cmin :: HixUrl -> HixUrl -> HixUrl
min :: HixUrl -> HixUrl -> HixUrl
Ord)

instance Default HixUrl where
  def :: HixUrl
def = HixUrl
"github:tek/hix"

newtype Author =
  Author { Author -> Text
unAuthor :: Text }
  deriving stock (Author -> Author -> Bool
(Author -> Author -> Bool)
-> (Author -> Author -> Bool) -> Eq Author
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Author -> Author -> Bool
== :: Author -> Author -> Bool
$c/= :: Author -> Author -> Bool
/= :: Author -> Author -> Bool
Eq, Int -> Author -> ShowS
[Author] -> ShowS
Author -> String
(Int -> Author -> ShowS)
-> (Author -> String) -> ([Author] -> ShowS) -> Show Author
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Author -> ShowS
showsPrec :: Int -> Author -> ShowS
$cshow :: Author -> String
show :: Author -> String
$cshowList :: [Author] -> ShowS
showList :: [Author] -> ShowS
Show, (forall x. Author -> Rep Author x)
-> (forall x. Rep Author x -> Author) -> Generic Author
forall x. Rep Author x -> Author
forall x. Author -> Rep Author x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. Author -> Rep Author x
from :: forall x. Author -> Rep Author x
$cto :: forall x. Rep Author x -> Author
to :: forall x. Rep Author x -> Author
Generic)
  deriving newtype (String -> Author
(String -> Author) -> IsString Author
forall a. (String -> a) -> IsString a
$cfromString :: String -> Author
fromString :: String -> Author
IsString, Eq Author
Eq Author
-> (Author -> Author -> Ordering)
-> (Author -> Author -> Bool)
-> (Author -> Author -> Bool)
-> (Author -> Author -> Bool)
-> (Author -> Author -> Bool)
-> (Author -> Author -> Author)
-> (Author -> Author -> Author)
-> Ord Author
Author -> Author -> Bool
Author -> Author -> Ordering
Author -> Author -> Author
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
$ccompare :: Author -> Author -> Ordering
compare :: Author -> Author -> Ordering
$c< :: Author -> Author -> Bool
< :: Author -> Author -> Bool
$c<= :: Author -> Author -> Bool
<= :: Author -> Author -> Bool
$c> :: Author -> Author -> Bool
> :: Author -> Author -> Bool
$c>= :: Author -> Author -> Bool
>= :: Author -> Author -> Bool
$cmax :: Author -> Author -> Author
max :: Author -> Author -> Author
$cmin :: Author -> Author -> Author
min :: Author -> Author -> Author
Ord)

data NewProjectConfig =
  NewProjectConfig {
    NewProjectConfig -> ProjectName
name :: ProjectName,
    NewProjectConfig -> Bool
packages :: Bool,
    NewProjectConfig -> HixUrl
hixUrl :: HixUrl,
    NewProjectConfig -> Author
author :: Author
  }
  deriving stock (NewProjectConfig -> NewProjectConfig -> Bool
(NewProjectConfig -> NewProjectConfig -> Bool)
-> (NewProjectConfig -> NewProjectConfig -> Bool)
-> Eq NewProjectConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NewProjectConfig -> NewProjectConfig -> Bool
== :: NewProjectConfig -> NewProjectConfig -> Bool
$c/= :: NewProjectConfig -> NewProjectConfig -> Bool
/= :: NewProjectConfig -> NewProjectConfig -> Bool
Eq, Int -> NewProjectConfig -> ShowS
[NewProjectConfig] -> ShowS
NewProjectConfig -> String
(Int -> NewProjectConfig -> ShowS)
-> (NewProjectConfig -> String)
-> ([NewProjectConfig] -> ShowS)
-> Show NewProjectConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NewProjectConfig -> ShowS
showsPrec :: Int -> NewProjectConfig -> ShowS
$cshow :: NewProjectConfig -> String
show :: NewProjectConfig -> String
$cshowList :: [NewProjectConfig] -> ShowS
showList :: [NewProjectConfig] -> ShowS
Show, (forall x. NewProjectConfig -> Rep NewProjectConfig x)
-> (forall x. Rep NewProjectConfig x -> NewProjectConfig)
-> Generic NewProjectConfig
forall x. Rep NewProjectConfig x -> NewProjectConfig
forall x. NewProjectConfig -> Rep NewProjectConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. NewProjectConfig -> Rep NewProjectConfig x
from :: forall x. NewProjectConfig -> Rep NewProjectConfig x
$cto :: forall x. Rep NewProjectConfig x -> NewProjectConfig
to :: forall x. Rep NewProjectConfig x -> NewProjectConfig
Generic)