improve argument creation, improve fallback command
This commit is contained in:
@@ -33,6 +33,10 @@ sealed class Option<T : Any>(
|
||||
|
||||
override val required: Boolean
|
||||
get() = true
|
||||
|
||||
fun orElse(other: T) = OrElse(parser, fallback, names, other)
|
||||
fun orNull() = OrNull(parser, fallback, names)
|
||||
fun variable() = Variable(parser, fallback, names)
|
||||
}
|
||||
|
||||
class OrElse<T : Any>(
|
||||
@@ -83,97 +87,25 @@ sealed class Option<T : Any>(
|
||||
fun string(vararg names: String) =
|
||||
Required(StringParser, names.asList())
|
||||
|
||||
fun stringOrElse(vararg names: String, other: String) =
|
||||
OrElse(StringParser, names.asList(), other)
|
||||
|
||||
fun stringOrNull(vararg names: String) =
|
||||
OrNull(StringParser, names.asList())
|
||||
|
||||
fun strings(vararg names: String) =
|
||||
Variable(StringParser, names.asList())
|
||||
|
||||
fun int(vararg names: String) =
|
||||
Required(IntParser, names.asList())
|
||||
|
||||
fun intOrElse(vararg names: String, other: Int) =
|
||||
OrElse(IntParser, names.asList(), other)
|
||||
|
||||
fun intOrNull(vararg names: String) =
|
||||
OrNull(IntParser, names.asList())
|
||||
|
||||
fun ints(vararg names: String) =
|
||||
Variable(IntParser, names.asList())
|
||||
|
||||
fun long(vararg names: String) =
|
||||
Required(LongParser, names.asList())
|
||||
|
||||
fun longOrElse(vararg names: String, other: Long) =
|
||||
OrElse(LongParser, names.asList(), other)
|
||||
|
||||
fun longOrNull(vararg names: String) =
|
||||
OrNull(LongParser, names.asList())
|
||||
|
||||
fun longs(vararg names: String) =
|
||||
Variable(LongParser, names.asList())
|
||||
|
||||
fun float(vararg names: String) =
|
||||
Required(FloatParser, names.asList())
|
||||
|
||||
fun floatOrElse(vararg names: String, other: Float) =
|
||||
OrElse(FloatParser, names.asList(), other)
|
||||
|
||||
fun floatOrNull(vararg names: String) =
|
||||
OrNull(FloatParser, names.asList())
|
||||
|
||||
fun floats(vararg names: String) =
|
||||
Variable(FloatParser, names.asList())
|
||||
|
||||
fun double(vararg names: String) =
|
||||
Required(DoubleParser, names.asList())
|
||||
|
||||
fun doubleOrElse(vararg names: String, other: Double) =
|
||||
OrElse(DoubleParser, names.asList(), other)
|
||||
|
||||
fun doubleOrNull(vararg names: String) =
|
||||
OrNull(DoubleParser, names.asList())
|
||||
|
||||
fun doubles(vararg names: String) =
|
||||
Variable(DoubleParser, names.asList())
|
||||
|
||||
fun boolean(vararg names: String) =
|
||||
Required(BooleanParser, true, names.asList())
|
||||
|
||||
fun booleanOrElse(vararg names: String, other: Boolean) =
|
||||
OrElse(BooleanParser, true, names.asList(), other)
|
||||
|
||||
fun booleanOrNull(vararg names: String) =
|
||||
OrNull(BooleanParser, true, names.asList())
|
||||
|
||||
fun booleans(vararg names: String) =
|
||||
Variable(BooleanParser, true, names.asList())
|
||||
|
||||
inline fun <reified T : Enum<T>> enum(vararg names: String) =
|
||||
Required(enumParser<T>(), names.asList())
|
||||
|
||||
inline fun <reified T : Enum<T>> enumOrElse(vararg names: String, other: T) =
|
||||
OrElse(enumParser<T>(), names.asList(), other)
|
||||
|
||||
inline fun <reified T : Enum<T>> enumOrNull(vararg names: String) =
|
||||
OrNull(enumParser<T>(), names.asList())
|
||||
|
||||
inline fun <reified T : Enum<T>> enums(vararg names: String) =
|
||||
Variable(enumParser<T>(), names.asList())
|
||||
|
||||
fun regex(vararg names: String) =
|
||||
Required(RegexParser, names.asList())
|
||||
|
||||
fun regexOrElse(vararg names: String, other: Regex) =
|
||||
OrElse(RegexParser, names.asList(), other)
|
||||
|
||||
fun regexOrNull(vararg names: String) =
|
||||
OrNull(RegexParser, names.asList())
|
||||
|
||||
fun regexs(vararg names: String) =
|
||||
Variable(RegexParser, names.asList())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user