add cache rules to haskell, alphabetize soem types, remove Cookies type

This commit is contained in:
mtgmonkey 2025-05-09 17:44:18 -04:00
parent 9ec9c55912
commit 870d8ec257
7 changed files with 209 additions and 239 deletions

View file

@ -10,39 +10,27 @@ import Data.Aeson (ToJSON (..), FromJSON (..))
import Elm
import GHC.Generics
data Font = Font
{ fontFontSize :: Float
} deriving (Generic)
deriving (Elm, ToJSON, FromJSON) via ElmStreet Font
data Cookies = Cookies
{ cookiesCookiesKept :: CookiesKept
, cookiesFont :: Font
, cookiesPrompt :: Prompt
, cookiesTheme :: Theme
} deriving (Generic)
deriving (Elm, ToJSON, FromJSON) via ElmStreet Cookies
data Theme
= Pit
| Dim
| Sky
| Sun
data Command
= ClearCommand
| ColorsCommand
| CookiesCommand
| DebugCommand
| FontCommand
| HelloCommand
| HelpCommand
| PromptCommand
| ThemeCommand
| TodoCommand
deriving (Generic)
deriving (Elm, ToJSON, FromJSON) via ElmStreet Theme
deriving (Elm, ToJSON, FromJSON) via ElmStreet Command
data CookiesKept = CookiesKept
{ cookiesKeptKeepTheme :: Bool
, cookiesKeptKeepFont :: Bool
{ cookiesKeptKeepFont :: Bool
, cookiesKeptKeepPrompt :: Bool
, cookiesKeptKeepTheme :: Bool
} deriving (Generic)
deriving (Elm, ToJSON, FromJSON) via ElmStreet CookiesKept
data Prompt = Prompt
{ promptPrompt :: String
} deriving (Generic)
deriving (Elm, ToJSON, FromJSON) via ElmStreet Prompt
data CoreColor
= Red
| Green
@ -59,6 +47,31 @@ data CoreColor
deriving (Generic)
deriving (Elm, ToJSON, FromJSON) via ElmStreet CoreColor
data Font = Font
{ fontFontSize :: Float
} deriving (Generic)
deriving (Elm, ToJSON, FromJSON) via ElmStreet Font
data Input = Input
{ inputCommand :: Command
, inputArgs :: [String]
}
deriving (Generic)
deriving (Elm, ToJSON, FromJSON) via ElmStreet Input
data Prompt = Prompt
{ promptPrompt :: String
} deriving (Generic)
deriving (Elm, ToJSON, FromJSON) via ElmStreet Prompt
data Theme
= Pit
| Dim
| Sky
| Sun
deriving (Generic)
deriving (Elm, ToJSON, FromJSON) via ElmStreet Theme
data ThemeColor
= Background
| Foreground
@ -70,37 +83,15 @@ data ThemeColor
deriving (Generic)
deriving (Elm, ToJSON, FromJSON) via ElmStreet ThemeColor
data Command
= ClearCommand
| ColorsCommand
| CookiesCommand
| DebugCommand
| FontCommand
| HelloCommand
| HelpCommand
| PromptCommand
| ThemeCommand
| TodoCommand
deriving (Generic)
deriving (Elm, ToJSON, FromJSON) via ElmStreet Command
data Input = Input
{ inputCommand :: Command
, inputArgs :: [String]
}
deriving (Generic)
deriving (Elm, ToJSON, FromJSON) via ElmStreet Input
type Types =
'[Font
, Cookies
, Theme
'[Command
, CookiesKept
, Prompt
, CoreColor
, ThemeColor
, Command
, Font
, Input
, Prompt
, Theme
, ThemeColor
]
generateElmskellTypes :: IO ()