implement EnumParser
This commit is contained in:
@@ -1,9 +1,7 @@
|
||||
package com.infendro.cli.command
|
||||
|
||||
import com.infendro.cli.parser.BooleanParser
|
||||
import com.infendro.cli.parser.IntParser
|
||||
import com.infendro.cli.parser.*
|
||||
import com.infendro.cli.parser.Parser
|
||||
import com.infendro.cli.parser.StringParser
|
||||
|
||||
sealed class Argument<T>(
|
||||
val parser: Parser<T>,
|
||||
@@ -75,5 +73,17 @@ sealed class Argument<T>(
|
||||
|
||||
fun booleans() =
|
||||
Variable(BooleanParser)
|
||||
|
||||
inline fun <reified T : Enum<T>> enum() =
|
||||
Required(enumParser<T>())
|
||||
|
||||
inline fun <reified T : Enum<T>> enumOrElse(other: T) =
|
||||
OrElse(other, enumParser<T>())
|
||||
|
||||
inline fun <reified T : Enum<T>> enumOrNull() =
|
||||
OrNull(enumParser<T>())
|
||||
|
||||
inline fun <reified T : Enum<T>> enums() =
|
||||
Variable(enumParser<T>())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user