module Rattletrap.Console.Option where

import qualified Rattletrap.Console.Flag as Flag
import qualified System.Console.GetOpt as Console

type Option = Console.OptDescr Flag.Flag

all :: [Option]
all :: [Option]
all = [Option
compact, Option
fast, Option
help, Option
input, Option
mode, Option
output, Option
schema, Option
skipCrc, Option
version]

compact :: Option
compact :: Option
compact =
  forall a. [Char] -> [[Char]] -> ArgDescr a -> [Char] -> OptDescr a
Console.Option
    [Char
'c']
    [[Char]
"compact"]
    (forall a. a -> ArgDescr a
Console.NoArg Flag
Flag.Compact)
    [Char]
"minify JSON output"

fast :: Option
fast :: Option
fast =
  forall a. [Char] -> [[Char]] -> ArgDescr a -> [Char] -> OptDescr a
Console.Option
    [Char
'f']
    [[Char]
"fast"]
    (forall a. a -> ArgDescr a
Console.NoArg Flag
Flag.Fast)
    [Char]
"only encode or decode the header"

help :: Option
help :: Option
help = forall a. [Char] -> [[Char]] -> ArgDescr a -> [Char] -> OptDescr a
Console.Option [Char
'h'] [[Char]
"help"] (forall a. a -> ArgDescr a
Console.NoArg Flag
Flag.Help) [Char]
"show the help"

input :: Option
input :: Option
input =
  forall a. [Char] -> [[Char]] -> ArgDescr a -> [Char] -> OptDescr a
Console.Option
    [Char
'i']
    [[Char]
"input"]
    (forall a. ([Char] -> a) -> [Char] -> ArgDescr a
Console.ReqArg [Char] -> Flag
Flag.Input [Char]
"FILE|URL")
    [Char]
"input file or URL"

mode :: Option
mode :: Option
mode =
  forall a. [Char] -> [[Char]] -> ArgDescr a -> [Char] -> OptDescr a
Console.Option
    [Char
'm']
    [[Char]
"mode"]
    (forall a. ([Char] -> a) -> [Char] -> ArgDescr a
Console.ReqArg [Char] -> Flag
Flag.Mode [Char]
"MODE")
    [Char]
"decode or encode"

output :: Option
output :: Option
output =
  forall a. [Char] -> [[Char]] -> ArgDescr a -> [Char] -> OptDescr a
Console.Option
    [Char
'o']
    [[Char]
"output"]
    (forall a. ([Char] -> a) -> [Char] -> ArgDescr a
Console.ReqArg [Char] -> Flag
Flag.Output [Char]
"FILE")
    [Char]
"output file"

schema :: Option
schema :: Option
schema =
  forall a. [Char] -> [[Char]] -> ArgDescr a -> [Char] -> OptDescr a
Console.Option [] [[Char]
"schema"] (forall a. a -> ArgDescr a
Console.NoArg Flag
Flag.Schema) [Char]
"output the schema"

skipCrc :: Option
skipCrc :: Option
skipCrc =
  forall a. [Char] -> [[Char]] -> ArgDescr a -> [Char] -> OptDescr a
Console.Option [] [[Char]
"skip-crc"] (forall a. a -> ArgDescr a
Console.NoArg Flag
Flag.SkipCrc) [Char]
"skip the CRC"

version :: Option
version :: Option
version =
  forall a. [Char] -> [[Char]] -> ArgDescr a -> [Char] -> OptDescr a
Console.Option
    [Char
'v']
    [[Char]
"version"]
    (forall a. a -> ArgDescr a
Console.NoArg Flag
Flag.Version)
    [Char]
"show the version"