module Hix.Data.NewProjectConfig where

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

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

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

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