-
Notifications
You must be signed in to change notification settings - Fork 33
Open
Description
Hi, I wanted to use a sum type in my command line parsing, and I came up with this:
data FrontendLanguage = Typescript | Swift deriving (Eq, Show, Read, Generic)
instance ParseField FrontendLanguage
instance ParseRecord FrontendLanguage
instance ParseFields FrontendLanguage
data Tasks
= GenerateRoutes
{ language :: FrontendLanguage <?> "Options are: Typescript, Swift"
, frontendRepo :: FilePath <?> "Path to the root of the frontend repo"
}
deriving (Generic, Show)
instance ParseRecord Tasks
It works fine in the success case, though there isn't a specific error message if you provide an invalid sum type, just the generic help text.
Is this the best way to do this? I couldn't find anything in the documentation about this (could have missed it, though). If it is the best way, I'll submit a PR to document this use-case in the Haddocks if you'd like.
Metadata
Metadata
Assignees
Labels
No labels