Args.kt
package com.hexagontk.shell
inline fun <reified T : Any> Option(
shortName: Char? = null,
name: String? = null,
description: String? = null,
regex: Regex? = null,
optional: Boolean = true,
multiple: Boolean = false,
tag: String? = null,
) : Option<T> =
Option(T::class, shortName, name, description, regex, optional, multiple, tag)
inline fun <reified T : Any> Option(
shortName: Char? = null,
name: String? = null,
description: String? = null,
regex: Regex? = null,
tag: String? = null,
values: List<T>
) : Option<T> =
Option(T::class, shortName, name, description, regex, tag, values)
inline fun <reified T : Any> Option(
shortName: Char? = null,
name: String? = null,
description: String? = null,
regex: Regex? = null,
tag: String? = null,
value: T
) : Option<T> =
Option(T::class, shortName, name, description, regex, tag, value)
inline fun <reified T : Any> Parameter(
name: String,
description: String? = null,
regex: Regex? = null,
optional: Boolean = true,
multiple: Boolean = false,
tag: String? = null,
) : Parameter<T> =
Parameter(T::class, name, description, regex, optional, multiple, tag)
inline fun <reified T : Any> Parameter(
name: String,
description: String? = null,
regex: Regex? = null,
tag: String? = null,
values: List<T>,
) : Parameter<T> =
Parameter(T::class, name, description, regex, tag, values)
inline fun <reified T : Any> Parameter(
name: String,
description: String? = null,
regex: Regex? = null,
tag: String? = null,
value: T,
) : Parameter<T> =
Parameter(T::class, name, description, regex, tag, value)