commandlineparser / commandlineparser/commandline
Question - can f# matching handle verbs?
- Dominant language
- C#
- Stars
- 4.8k
- Forks
- 478
- PR merge metrics
- No merged PRs in 30d
Description
Sorry for question as issue, googled a bit and had no luck.
Is the F# matching support meant to work with verbs? I'm trying
```fs
[]
type UploadOptions = {
[] FileName: string;
[] RootUrl: string;
}
[]
type OtherOptions = {
[] Opt: string;
}
let getOpts argv : CLIOptions =
let result = CommandLine.Parser.Default.ParseArguments(argv)
match result with
| :? Parsed as p -> p.Value // <-- compile error here
| :? Parsed as p -> p.Value
| :? NotParsed as e ->
let errs = e.Errors |> Seq.map string |> Seq.toList
failwith <| String.Join("\n", errs)
| _ -> failwith "bang"
```
But this fails to compile:
```
Type constraint mismatch. The type
'Parsed'
is not compatible with type
'ParserResult'
```
I don't have a good understanding of how C# types map to F# sorry, so apologies if I'm missing something obvious.
EDIT: Never mind, found the readme. Consider this a feature request to not need to double match against `obj`. :)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the README's F# support guidance and the ParserResult, Parsed, and NotParsed types shown in the issue. Determine how verb-specific results are exposed to F# callers; done means callers can match the parsed command result without double matching against obj.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100