mirror of
https://github.com/Smaug123/gitea-repo-config
synced 2025-10-05 15:38:41 +00:00
21 lines
592 B
Forth
21 lines
592 B
Forth
namespace Gitea.Declarative
|
|
|
|
open Argu
|
|
|
|
type ArgsEvaluator<'ret> =
|
|
abstract Eval<'a, 'b when 'b :> IArgParserTemplate> :
|
|
(ParseResults<'b> -> Result<'a, ArguParseException>) -> ('a -> Async<int>) -> 'ret
|
|
|
|
type ArgsCrate =
|
|
abstract Apply<'ret> : ArgsEvaluator<'ret> -> 'ret
|
|
|
|
[<RequireQualifiedAccess>]
|
|
module ArgsCrate =
|
|
let make<'a, 'b when 'b :> IArgParserTemplate>
|
|
(ofResult : ParseResults<'b> -> Result<'a, ArguParseException>)
|
|
(run : 'a -> Async<int>)
|
|
=
|
|
{ new ArgsCrate with
|
|
member _.Apply e = e.Eval ofResult run
|
|
}
|