@@ -57,63 +57,43 @@ module Input =
5757 let option < 'T > ( name : string ) =
5858 Option< 'T>( name) |> HandlerInput.OfOption
5959
60- let aliases ( aliases : string seq ) ( hi : HandlerInput < 'T >) =
61- hi.Source
62- |> function
63- | ParsedOption o ->
64- aliases |> Seq.iter o.Aliases.Add
65- hi
66- | _ -> hi
60+ let editOption ( edit : Option < 'T > -> unit ) ( hi : HandlerInput < 'T >) =
61+ match hi.Source with
62+ | ParsedOption o -> o :?> Option< 'T> |> edit
63+ | _ -> ()
64+ hi
65+
66+ let editArgument ( edit : Argument < 'T > -> unit ) ( hi : HandlerInput < 'T >) =
67+ match hi.Source with
68+ | ParsedArgument a -> a :?> Argument< 'T> |> edit
69+ | _ -> ()
70+ hi
6771
72+ let aliases ( aliases : string seq ) ( hi : HandlerInput < 'T >) =
73+ hi |> editOption ( fun o -> aliases |> Seq.iter o.Aliases.Add)
74+
6875 let alias ( alias : string ) ( hi : HandlerInput < 'T >) =
69- hi.Source
70- |> function
71- | ParsedOption o -> o.Aliases.Add alias; hi
72- | _ -> hi
76+ hi |> editOption ( fun o -> o.Aliases.Add alias)
7377
7478 let desc ( description : string ) ( hi : HandlerInput < 'T >) =
75- hi.Source
76- |> function
77- | ParsedOption o -> o.Description <- description; o :?> Option< 'T> |> HandlerInput.OfOption< 'T>
78- | ParsedArgument a -> a.Description <- description; a :?> Argument< 'T> |> HandlerInput.OfArgument< 'T>
79- | Context -> hi
79+ hi
80+ |> editOption ( fun o -> o.Description <- description)
81+ |> editArgument ( fun a -> a.Description <- description)
8082
8183 let defaultValue ( defaultValue : 'T ) ( hi : HandlerInput < 'T >) =
82- hi.Source
83- |> function
84- | ParsedOption o ->
85- let o = o :?> Option< 'T>
86- o.DefaultValueFactory <- ( fun _ -> defaultValue)
87- HandlerInput.OfOption< 'T> o
88- | ParsedArgument a ->
89- let a = a :?> Argument< 'T>
90- a.DefaultValueFactory <- ( fun _ -> defaultValue)
91- HandlerInput.OfArgument< 'T> a
92- | Context -> hi
93-
84+ hi
85+ |> editOption ( fun o -> o.DefaultValueFactory <- ( fun _ -> defaultValue))
86+ |> editArgument ( fun a -> a.DefaultValueFactory <- ( fun _ -> defaultValue))
87+
9488 let def = defaultValue
9589
9690 let defFactory ( defaultValueFactory : Parsing.ArgumentResult -> 'T ) ( hi : HandlerInput < 'T >) =
97- hi.Source
98- |> function
99- | ParsedOption o ->
100- let o = o :?> Option< 'T>
101- o.DefaultValueFactory <- defaultValueFactory
102- HandlerInput.OfOption< 'T> o
103- | ParsedArgument a ->
104- let a = a :?> Argument< 'T>
105- a.DefaultValueFactory <- defaultValueFactory
106- HandlerInput.OfArgument< 'T> a
107- | Context -> hi
91+ hi
92+ |> editOption ( fun o -> o.DefaultValueFactory <- defaultValueFactory)
93+ |> editArgument ( fun a -> a.DefaultValueFactory <- defaultValueFactory)
10894
10995 let required ( hi : HandlerInput < 'T >) =
110- hi.Source
111- |> function
112- | ParsedOption o ->
113- let o = o :?> Option< 'T>
114- o.Required <- true
115- HandlerInput.OfOption< 'T> o
116- | _ -> hi
96+ hi |> editOption ( fun o -> o.Required <- true )
11797
11898 let optionMaybe < 'T > ( name : string ) =
11999 let o = Option< 'T option>( name, aliases = [||])
0 commit comments