improve argument creation, improve fallback command

This commit is contained in:
2026-01-05 16:44:07 +01:00
parent 6779e28792
commit 86409e9f72
4 changed files with 26 additions and 152 deletions

View File

@@ -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())
}
}