mirror of
https://github.com/tursom/TursomServer.git
synced 2025-03-14 03:40:06 +08:00
add curry
This commit is contained in:
parent
dc9f8e440f
commit
3612b367ff
808
ts-core/src/main/kotlin/cn/tursom/core/utils.kt
Normal file
808
ts-core/src/main/kotlin/cn/tursom/core/utils.kt
Normal file
@ -0,0 +1,808 @@
|
||||
@file:Suppress("unused")
|
||||
|
||||
package cn.tursom.core
|
||||
|
||||
import com.ddbes.common.monitor.annotation.POJO
|
||||
import com.ddbes.kotlin.datastruck.*
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.GsonBuilder
|
||||
import org.aspectj.lang.JoinPoint
|
||||
import org.aspectj.lang.Signature
|
||||
import org.aspectj.lang.reflect.MethodSignature
|
||||
import org.slf4j.Logger
|
||||
import org.slf4j.event.Level
|
||||
import org.springframework.web.context.request.RequestAttributes
|
||||
import org.springframework.web.context.request.RequestContextHolder
|
||||
import sun.reflect.Reflection
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.ObjectOutputStream
|
||||
import java.lang.reflect.Field
|
||||
import java.lang.reflect.Method
|
||||
import java.lang.reflect.Proxy
|
||||
import java.net.InetAddress
|
||||
import java.net.UnknownHostException
|
||||
import java.security.MessageDigest
|
||||
import java.security.NoSuchAlgorithmException
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import java.util.concurrent.Executor
|
||||
import javax.servlet.http.HttpServletRequest
|
||||
import kotlin.contracts.ExperimentalContracts
|
||||
import kotlin.contracts.contract
|
||||
import kotlin.coroutines.resume
|
||||
import kotlin.coroutines.resumeWithException
|
||||
import kotlin.coroutines.suspendCoroutine
|
||||
import kotlin.experimental.and
|
||||
import kotlin.jvm.internal.PropertyReference
|
||||
import kotlin.random.Random
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.reflect.KProperty
|
||||
import kotlin.reflect.KProperty1
|
||||
import kotlin.reflect.full.companionObjectInstance
|
||||
import kotlin.reflect.full.memberProperties
|
||||
import kotlin.reflect.full.superclasses
|
||||
|
||||
object Utils {
|
||||
const val dollar = '$'
|
||||
val random = Random(System.currentTimeMillis())
|
||||
|
||||
@Suppress("unused", "SpellCheckingInspection")
|
||||
val gson: Gson by lazy {
|
||||
GsonBuilder()
|
||||
.registerTypeAdapterFactory(GsonDataTypeAdaptor.FACTORY)
|
||||
.registerTypeAdapterFactory(EnumTypeAdapterFactory)
|
||||
.create()
|
||||
}
|
||||
|
||||
@Suppress("unused", "SpellCheckingInspection")
|
||||
val prettyGson: Gson by lazy {
|
||||
GsonBuilder()
|
||||
.registerTypeAdapterFactory(GsonDataTypeAdaptor.FACTORY)
|
||||
.registerTypeAdapterFactory(EnumTypeAdapterFactory)
|
||||
.setPrettyPrinting()
|
||||
.create()
|
||||
}
|
||||
|
||||
internal val UPPER_HEX_ARRAY = "0123456789ABCDEF".toCharArray()
|
||||
internal val LOWER_HEX_ARRAY = "0123456789abcdef".toCharArray()
|
||||
val md5 by lazy { MessageDigest.getInstance("MD5")!! }
|
||||
val sha256 by lazy { MessageDigest.getInstance("SHA-256")!! }
|
||||
val sha by lazy { MessageDigest.getInstance("SHA")!! }
|
||||
val sha1 by lazy { MessageDigest.getInstance("SHA-1")!! }
|
||||
val sha384 by lazy { MessageDigest.getInstance("SHA-384")!! }
|
||||
val sha512 by lazy { MessageDigest.getInstance("SHA-512")!! }
|
||||
|
||||
internal val DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray()
|
||||
|
||||
val receiverField: Field by lazy {
|
||||
kotlin.jvm.internal.CallableReference::class.java.getDeclaredField("receiver").apply { isAccessible = true }
|
||||
}
|
||||
val ownerField: Field by lazy {
|
||||
kotlin.jvm.internal.CallableReference::class.java.getDeclaredField("owner").apply { isAccessible = true }
|
||||
}
|
||||
|
||||
private val bufferThreadLocal = SimpThreadLocal { ByteArray(8192) }
|
||||
val threadLocalBuffer get() = bufferThreadLocal.get()
|
||||
}
|
||||
|
||||
fun <T> T.asResult(): Result<T> = Result.typedSuccess(this)
|
||||
|
||||
@OptIn(UncheckedCast::class)
|
||||
val JoinPoint.method: Method
|
||||
get() = signature.cast<MethodSignature>().method
|
||||
|
||||
@OptIn(UncheckedCast::class)
|
||||
val Signature.method: Method
|
||||
get() = cast<MethodSignature>().method
|
||||
|
||||
@OptIn(UncheckedCast::class)
|
||||
fun getRequest(): HttpServletRequest = RequestContextHolder
|
||||
.getRequestAttributes()
|
||||
?.resolveReference(RequestAttributes.REFERENCE_REQUEST)
|
||||
.cast()
|
||||
|
||||
private const val UNKNOWN = "unknown"
|
||||
private const val LOCALHOST = "127.0.0.1"
|
||||
fun getIpAddr(request: HttpServletRequest): String? {
|
||||
var ipAddress: String?
|
||||
try {
|
||||
ipAddress = request.getHeader("x-forwarded-for")
|
||||
if (ipAddress == null || ipAddress.isEmpty() || UNKNOWN.equals(ipAddress, true)) {
|
||||
ipAddress = request.getHeader("Proxy-Client-IP")
|
||||
}
|
||||
if (ipAddress == null || ipAddress.isEmpty() || UNKNOWN.equals(ipAddress, true)) {
|
||||
ipAddress = request.getHeader("WL-Proxy-Client-IP")
|
||||
}
|
||||
if (ipAddress == null || ipAddress.isEmpty() || UNKNOWN.equals(ipAddress, true)) {
|
||||
ipAddress = request.remoteAddr
|
||||
if (LOCALHOST == ipAddress) {
|
||||
var inet: InetAddress? = null
|
||||
try {
|
||||
inet = InetAddress.getLocalHost()
|
||||
} catch (e: UnknownHostException) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
ipAddress = inet!!.hostAddress
|
||||
}
|
||||
}
|
||||
// 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
|
||||
// "***.***.***.***".length()
|
||||
if (ipAddress != null && ipAddress.length > 15) {
|
||||
if (ipAddress.indexOf(",") > 0) {
|
||||
ipAddress = ipAddress.substring(0, ipAddress.indexOf(","))
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
ipAddress = ""
|
||||
}
|
||||
return ipAddress
|
||||
}
|
||||
|
||||
fun String.hexStringToByteArray(): ByteArray {
|
||||
val len = length
|
||||
val data = ByteArray(len / 2)
|
||||
var i = 0
|
||||
while (i < len) {
|
||||
data[i / 2] = (Character.digit(this[i], 16) shl 4 or Character.digit(this[i + 1], 16)).toByte()
|
||||
i += 2
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
fun ByteArray.toHexString(upper: Boolean = true): String = if (upper) toUpperHexString() else toLowerHexString()
|
||||
|
||||
fun ByteArray.toUpperHexString(): String {
|
||||
val hexChars = CharArray(size * 2)
|
||||
for (i in indices) {
|
||||
val b = this[i]
|
||||
hexChars[i shl 1] = Utils.UPPER_HEX_ARRAY[b.toInt() ushr 4 and 0x0F]
|
||||
hexChars[(i shl 1) + 1] = Utils.UPPER_HEX_ARRAY[(b and 0x0F).toInt()]
|
||||
}
|
||||
return String(hexChars)
|
||||
}
|
||||
|
||||
fun ByteArray.toLowerHexString(): String {
|
||||
val hexChars = CharArray(size * 2)
|
||||
for (i in indices) {
|
||||
val b = this[i]
|
||||
hexChars[i shl 1] = Utils.LOWER_HEX_ARRAY[b.toInt() ushr 4 and 0x0F]
|
||||
hexChars[(i shl 1) + 1] = Utils.LOWER_HEX_ARRAY[(b and 0x0F).toInt()]
|
||||
}
|
||||
return String(hexChars)
|
||||
}
|
||||
|
||||
inline fun <T, R : Any> Array<T>.toSetNotNull(transform: (T) -> R?): Set<R> {
|
||||
return LinkedHashSet<R>().apply { this@toSetNotNull.forEach { add(transform(it) ?: return@forEach) } }
|
||||
}
|
||||
|
||||
inline fun <T, R : Any> Iterable<T>.toSetNotNull(transform: (T) -> R?): Set<R> {
|
||||
return LinkedHashSet<R>().apply { this@toSetNotNull.forEach { add(transform(it) ?: return@forEach) } }
|
||||
}
|
||||
|
||||
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
//@Target(AnnotationTarget.FIELD, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION, AnnotationTarget.CLASS)
|
||||
annotation class UncheckedCast
|
||||
|
||||
@UncheckedCast
|
||||
@Suppress("NOTHING_TO_INLINE", "UNCHECKED_CAST")
|
||||
inline fun <T> Any?.cast() = this as T
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE", "UNCHECKED_CAST")
|
||||
inline fun <T> Any?.uncheckedCast() = this as T
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE", "UNCHECKED_CAST")
|
||||
inline fun <reified T> Any?.castOrNull() = if (this is T) this else null
|
||||
|
||||
inline fun <T> T?.checkNull(ifNull: () -> Exception): T {
|
||||
if (this == null) {
|
||||
throw ifNull()
|
||||
} else {
|
||||
return this
|
||||
}
|
||||
}
|
||||
|
||||
fun String.emptyToNull() = ifEmpty { null }
|
||||
|
||||
inline fun <reified T> getClazz() = T::class.java
|
||||
|
||||
fun Class<*>.isInheritanceFrom(parent: Class<*>) = parent.isAssignableFrom(this)
|
||||
|
||||
operator fun <T> (() -> T).unaryPlus() = object : () -> T {
|
||||
override operator fun invoke() = this@unaryPlus()
|
||||
override fun toString(): String = this@unaryPlus().toString()
|
||||
}
|
||||
|
||||
fun Logger.isEnabled(level: Level) = when (level) {
|
||||
Level.ERROR -> isErrorEnabled
|
||||
Level.WARN -> isWarnEnabled
|
||||
Level.INFO -> isInfoEnabled
|
||||
Level.DEBUG -> isDebugEnabled
|
||||
Level.TRACE -> isTraceEnabled
|
||||
}
|
||||
|
||||
fun Logger.log(level: Level, msg: String, args: Array<*>) = when (level) {
|
||||
Level.ERROR -> error(msg, *args)
|
||||
Level.WARN -> warn(msg, *args)
|
||||
Level.INFO -> info(msg, *args)
|
||||
Level.DEBUG -> debug(msg, *args)
|
||||
Level.TRACE -> trace(msg, *args)
|
||||
}
|
||||
|
||||
@JvmName("friendlyLog")
|
||||
fun Logger.log(level: Level, msg: String, vararg args: Any?) = when (level) {
|
||||
Level.ERROR -> error(msg, *args)
|
||||
Level.WARN -> warn(msg, *args)
|
||||
Level.INFO -> info(msg, *args)
|
||||
Level.DEBUG -> debug(msg, *args)
|
||||
Level.TRACE -> trace(msg, *args)
|
||||
}
|
||||
|
||||
fun String.toLowerCase(vararg indexes: Int): String {
|
||||
val charArray = toCharArray()
|
||||
indexes.forEach { index ->
|
||||
charArray[index] = charArray[index].lowercaseChar()
|
||||
}
|
||||
return String(charArray)
|
||||
}
|
||||
|
||||
fun String.toUpperCase(vararg indexes: Int): String {
|
||||
val charArray = toCharArray()
|
||||
indexes.forEach { index ->
|
||||
charArray[index] = charArray[index].uppercaseChar()
|
||||
}
|
||||
return String(charArray)
|
||||
}
|
||||
|
||||
fun String.toLowerCase(indexes: IntRange): String {
|
||||
val charArray = toCharArray()
|
||||
indexes.forEach { index ->
|
||||
charArray[index] = charArray[index].lowercaseChar()
|
||||
}
|
||||
return String(charArray)
|
||||
}
|
||||
|
||||
fun String.toUpperCase(indexes: IntRange): String {
|
||||
val charArray = toCharArray()
|
||||
indexes.forEach { index ->
|
||||
charArray[index] = charArray[index].uppercaseChar()
|
||||
}
|
||||
return String(charArray)
|
||||
}
|
||||
|
||||
fun ByteArray.md5(): ByteArray {
|
||||
return Utils.md5.digest(this)
|
||||
}
|
||||
|
||||
fun String.md5(): String = toByteArray().md5().toHexString()
|
||||
|
||||
fun ByteArray.sha256(): ByteArray {
|
||||
return Utils.sha256.digest(this)
|
||||
}
|
||||
|
||||
fun String.sha256(): String = toByteArray().sha256().toHexString()
|
||||
|
||||
fun ByteArray.sha(): ByteArray = Utils.sha.digest(this)
|
||||
|
||||
fun String.sha(): String = toByteArray().sha().toHexString()
|
||||
|
||||
fun ByteArray.sha1(): ByteArray = Utils.sha1.digest(this)
|
||||
|
||||
fun String.sha1(): String = toByteArray().sha1().toHexString()
|
||||
|
||||
fun ByteArray.sha384(): ByteArray = Utils.sha384.digest(this)
|
||||
|
||||
fun String.sha384(): String = toByteArray().sha384().toHexString()
|
||||
|
||||
fun ByteArray.sha512(): ByteArray = Utils.sha512.digest(this)
|
||||
|
||||
fun String.sha512(): String = toByteArray().sha512().toHexString()
|
||||
|
||||
fun String.fromHexString(): ByteArray {
|
||||
val source = toLowerCase()
|
||||
val data = ByteArray(length / 2)
|
||||
for (i in 0 until length / 2) {
|
||||
data[i] =
|
||||
((Utils.UPPER_HEX_ARRAY.indexOf(source[i * 2]) shl 4) + Utils.UPPER_HEX_ARRAY.indexOf(
|
||||
source[i * 2 + 1]
|
||||
)).toByte()
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
fun ByteArray.toUTF8String() = String(this, Charsets.UTF_8)
|
||||
|
||||
fun String.base64() = this.toByteArray().base64().toUTF8String()
|
||||
|
||||
fun ByteArray.base64(): ByteArray {
|
||||
return Base64.getEncoder().encode(this)
|
||||
}
|
||||
|
||||
fun String.base64decode() = Base64.getDecoder().decode(this).toUTF8String()
|
||||
|
||||
fun ByteArray.base64decode(): ByteArray = Base64.getDecoder().decode(this)
|
||||
|
||||
fun String.digest(type: String) = toByteArray().digest(type)?.toHexString()
|
||||
|
||||
fun ByteArray.digest(type: String) = try {
|
||||
val instance = MessageDigest.getInstance(type)
|
||||
instance.digest(this)
|
||||
} catch (e: NoSuchAlgorithmException) {
|
||||
e.printStackTrace()
|
||||
null
|
||||
}
|
||||
|
||||
fun Logger.logCaller() = logCaller(Level.DEBUG)
|
||||
|
||||
fun Logger.logCaller(level: Level) {
|
||||
if (isEnabled(level)) {
|
||||
val e = Throwable()
|
||||
val stackTraceElement = e.stackTrace[1]
|
||||
log(
|
||||
level,
|
||||
"calling {}.{}({}:{})",
|
||||
stackTraceElement.className,
|
||||
stackTraceElement.methodName,
|
||||
stackTraceElement.fileName,
|
||||
stackTraceElement.lineNumber
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun <A : Annotation, V : Any> A.changeAnnotationValue(field: KProperty1<A, V>, value: V): Boolean {
|
||||
return try {
|
||||
val h = Proxy.getInvocationHandler(this)
|
||||
val memberValuesField = h.javaClass.getDeclaredField("memberValues")
|
||||
memberValuesField.isAccessible = true
|
||||
@OptIn(UncheckedCast::class)
|
||||
val memberValues = memberValuesField[h].cast<MutableMap<String, Any>>()
|
||||
memberValues[field.name] = value
|
||||
true
|
||||
} catch (e: Exception) {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 向数据库提交一项任务并获取返回值
|
||||
*/
|
||||
suspend fun <T> Executor.runWith(action: () -> T): T = suspendCoroutine { cont ->
|
||||
execute {
|
||||
try {
|
||||
cont.resume(action())
|
||||
} catch (e: Exception) {
|
||||
cont.resumeWithException(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline fun <reified T : Any> Gson.fromJson(json: String): T = fromJson(json, T::class.java)
|
||||
|
||||
inline fun usingTime(action: () -> Unit): Long {
|
||||
val t1 = System.currentTimeMillis()
|
||||
action()
|
||||
val t2 = System.currentTimeMillis()
|
||||
return t2 - t1
|
||||
}
|
||||
|
||||
inline fun usingNanoTime(action: () -> Unit): Long {
|
||||
val t1 = System.nanoTime()
|
||||
action()
|
||||
val t2 = System.nanoTime()
|
||||
return t2 - t1
|
||||
}
|
||||
|
||||
inline fun Class<*>.forAllFields(action: (Field) -> Unit) {
|
||||
allFieldsSequence.forEach(action)
|
||||
}
|
||||
|
||||
val Class<*>.allFields: List<Field>
|
||||
get() {
|
||||
val fieldList = ArrayList<Field>()
|
||||
forAllFields(fieldList::add)
|
||||
return fieldList
|
||||
}
|
||||
|
||||
val Class<*>.allFieldsSequence: Sequence<Field>
|
||||
get() = sequence {
|
||||
var clazz = this@allFieldsSequence
|
||||
while (clazz != Any::class.java) {
|
||||
clazz.declaredFields.forEach { field ->
|
||||
yield(field)
|
||||
}
|
||||
clazz = clazz.superclass ?: break
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun Class<*>.getFieldForAll(name: String): Field? {
|
||||
forAllFields {
|
||||
if (it.name == name) return it
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
inline fun Class<*>.forAllMethods(action: (Method) -> Unit) {
|
||||
allMethodsSequence.forEach(action)
|
||||
}
|
||||
|
||||
fun Class<*>.getMethodForAll(name: String, vararg parameterTypes: Class<*>?): Method? {
|
||||
forAllMethods {
|
||||
if (it.name == name && parameterTypes.contentEquals(it.parameterTypes)) return it
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
val Class<*>.allMethods: List<Method>
|
||||
get() {
|
||||
val fieldList = ArrayList<Method>()
|
||||
forAllMethods(fieldList::add)
|
||||
return fieldList
|
||||
}
|
||||
|
||||
val Class<*>.allMethodsSequence: Sequence<Method>
|
||||
get() = sequence {
|
||||
var clazz = this@allMethodsSequence
|
||||
while (clazz != Any::class.java) {
|
||||
clazz.declaredMethods.forEach {
|
||||
yield(it)
|
||||
}
|
||||
clazz = clazz.superclass ?: return@sequence
|
||||
}
|
||||
clazz.declaredMethods.forEach {
|
||||
yield(it)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取一个 KProperty<*> 对应的对象
|
||||
*/
|
||||
val KProperty<*>.receiver: Any?
|
||||
get() = if (this is PropertyReference) {
|
||||
boundReceiver
|
||||
} else try {
|
||||
Utils.receiverField.get(this)
|
||||
} catch (e: Exception) {
|
||||
null
|
||||
} ?: javaClass.getFieldForAll("receiver")?.let {
|
||||
it.isAccessible = true
|
||||
it.get(this)
|
||||
}
|
||||
|
||||
val KProperty<*>.owner: Class<*>?
|
||||
get() = try {
|
||||
@OptIn(UncheckedCast::class)
|
||||
Utils.ownerField.get(this)?.cast<Class<*>>()
|
||||
} catch (e: Exception) {
|
||||
null
|
||||
} ?: javaClass.getFieldForAll("owner")?.let {
|
||||
it.isAccessible = true
|
||||
it.get(this)?.castOrNull()
|
||||
}
|
||||
|
||||
tailrec fun Long.base62(sBuilder: StringBuilder = StringBuilder()): String {
|
||||
return if (this == 0L) {
|
||||
sBuilder.reverse().toString()
|
||||
} else {
|
||||
val remainder = (this % 62).toInt()
|
||||
sBuilder.append(Utils.DIGITS[remainder])
|
||||
(this / 62).base62(sBuilder)
|
||||
}
|
||||
}
|
||||
|
||||
fun String.base62Decode(): Long {
|
||||
var sum: Long = 0
|
||||
val len = length
|
||||
var base = 1L
|
||||
for (i in 0 until len) {
|
||||
sum += Utils.DIGITS.indexOf(this[len - i - 1]) * base
|
||||
base *= 62
|
||||
}
|
||||
return sum
|
||||
}
|
||||
|
||||
fun Any.toJson(): String = Utils.gson.toJson(this)
|
||||
fun Any.toPrettyJson(): String = Utils.prettyGson.toJson(this)
|
||||
|
||||
inline fun <reified T : Any> String.fromJson(): T = Utils.gson.fromJson(this, T::class.java)
|
||||
|
||||
fun Any.serialize(): ByteArray {
|
||||
val outputStream = ByteArrayOutputStream()
|
||||
ObjectOutputStream(outputStream).writeObject(this)
|
||||
return outputStream.toByteArray()
|
||||
}
|
||||
|
||||
operator fun <E> List<E>.get(startIndex: Int = 0, endIndex: Int = size, step: Int = 1): List<E> {
|
||||
if (step <= 0) throw IllegalArgumentException("step($step) is negative or zero")
|
||||
val fromIndex = when {
|
||||
startIndex < 0 -> size + startIndex
|
||||
startIndex >= size -> size
|
||||
else -> startIndex
|
||||
}
|
||||
val toIndex = when {
|
||||
endIndex < 0 -> size + endIndex + 1
|
||||
endIndex >= size -> size
|
||||
else -> endIndex
|
||||
}
|
||||
var targetList = if (fromIndex > toIndex) ReversedList(subList(toIndex, fromIndex)) else subList(fromIndex, toIndex)
|
||||
if (step != 1) targetList = targetList step step
|
||||
return targetList
|
||||
}
|
||||
|
||||
operator fun <E> List<E>.get(intProgression: IntProgression): List<E> {
|
||||
val first = intProgression.first
|
||||
val last = intProgression.last
|
||||
val step = intProgression.step
|
||||
return when {
|
||||
step == 0 -> get(first, last + if (last < 0) 0 else 1, 1)
|
||||
step < 0 -> get(first + if (last > 0 && first >= 0) 1 else 0, last, -step)
|
||||
else -> get(first, last + if (last < 0) 0 else 1, step)
|
||||
}
|
||||
}
|
||||
|
||||
infix fun <E> List<E>.step(step: Int): List<E> = StepList(this, step)
|
||||
|
||||
inline fun <C : R, R : CharSequence> C.ifNotEmpty(defaultValue: () -> R): R =
|
||||
if (isNotEmpty()) defaultValue() else this
|
||||
|
||||
inline fun <C : R, R : CharSequence> C.ifNotBlank(defaultValue: () -> R): R =
|
||||
if (isNotBlank()) defaultValue() else this
|
||||
|
||||
@JvmName("ifNotEmptyNullable")
|
||||
inline fun <C : R, R : CharSequence> C.ifNotEmpty(defaultValue: () -> R?): R? =
|
||||
if (isNotEmpty()) defaultValue() else this
|
||||
|
||||
@JvmName("ifNotBlankNullable")
|
||||
inline fun <C : R, R : CharSequence> C.ifNotBlank(defaultValue: () -> R?): R? =
|
||||
if (isNotBlank()) defaultValue() else this
|
||||
|
||||
/**
|
||||
* 使用 condition 做条件判断,如果返回 true 则使用 then 生成结果,否则返回自身
|
||||
*/
|
||||
inline fun <R, T : R> T.ifThen(condition: T.() -> Boolean, then: T.() -> R): R = if (condition()) then() else this
|
||||
|
||||
inline infix fun Boolean.ifThen(then: () -> Unit): Boolean {
|
||||
if (this) then()
|
||||
return this
|
||||
}
|
||||
|
||||
inline infix fun Boolean.ifNotThen(then: () -> Unit): Boolean {
|
||||
if (this.not()) then()
|
||||
return this
|
||||
}
|
||||
|
||||
inline fun <T> Any.wait(action: () -> T) = synchronized(this) {
|
||||
@Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN")
|
||||
(this as Object).wait()
|
||||
action()
|
||||
}
|
||||
|
||||
inline fun <T> Any.notify(action: () -> T) = synchronized(this) {
|
||||
val t = action()
|
||||
@Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN")
|
||||
(this as Object).notify()
|
||||
t
|
||||
}
|
||||
|
||||
inline fun <T> Any.notifyAll(action: () -> T) = synchronized(this) {
|
||||
val t = action()
|
||||
@Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN")
|
||||
(this as Object).notifyAll()
|
||||
t
|
||||
}
|
||||
|
||||
inline val KClass<*>.companionObjectInstanceOrNull: Any?
|
||||
get() = try {
|
||||
companionObjectInstance
|
||||
} catch (e: Exception) {
|
||||
null
|
||||
}
|
||||
|
||||
@UncheckedCast
|
||||
inline val <K : Any, V> Map<K?, V>.notNullKey
|
||||
get() = cast<Map<K, V>>()
|
||||
|
||||
@UncheckedCast
|
||||
inline val <K, V : Any> Map<K, V?>.notNullValue
|
||||
get() = cast<Map<K, V>>()
|
||||
|
||||
@UncheckedCast
|
||||
inline val <K : Any, V : Any> Map<K?, V?>.notNullEntry
|
||||
get() = cast<Map<K, V>>()
|
||||
|
||||
@OptIn(UncheckedCast::class)
|
||||
inline val <K : Any, V> Map<K?, V>.filterNullKey
|
||||
get() = filter { it.key != null }.notNullKey
|
||||
|
||||
@OptIn(UncheckedCast::class)
|
||||
inline val <K, V : Any> Map<K, V?>.filterNullValue
|
||||
get() = filter { it.value != null }.notNullValue
|
||||
|
||||
val <T : Any> KClass<T>.allMemberPropertiesSequence: Sequence<KProperty1<T, *>>
|
||||
get() = sequence {
|
||||
yieldAll(memberProperties)
|
||||
var superClass = superclasses.firstOrNull {
|
||||
!it.java.isInterface
|
||||
}
|
||||
while (superClass != null) {
|
||||
yieldAll(superClass.memberProperties.uncheckedCast<Collection<KProperty1<T, *>>>())
|
||||
superClass = superClass.superclasses.firstOrNull {
|
||||
!it.java.isInterface
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val <T : Any> KClass<T>.allMemberProperties: List<KProperty1<T, *>>
|
||||
get() = allMemberPropertiesSequence.toList()
|
||||
|
||||
fun String.toStartWith(prefix: String) = if (startsWith(prefix)) this else prefix + this
|
||||
fun String.toStartWith(prefix: Char) = if (startsWith(prefix)) this else prefix + this
|
||||
|
||||
fun mongoLegal(value: Any?) = when {
|
||||
value == null -> true
|
||||
value.javaClass.getAnnotation(POJO::class.java) != null -> true
|
||||
//value is BindingResult -> false
|
||||
value is Enum<*> -> true
|
||||
value is Number -> true
|
||||
value is Boolean -> true
|
||||
value is Char -> true
|
||||
value is String -> true
|
||||
//value is Serializable -> true
|
||||
value.javaClass.kotlin.isData -> true
|
||||
value.javaClass.name.endsWith("DTO") -> true
|
||||
value.javaClass.name.endsWith("VO") -> true
|
||||
else -> false
|
||||
}
|
||||
|
||||
fun getCallerClass(thisClassName: List<String>): Class<*>? {
|
||||
var clazz: Class<*>?
|
||||
var callStackDepth = 1
|
||||
try {
|
||||
do {
|
||||
clazz = getCallerClass(callStackDepth++)
|
||||
if (clazz?.name !in thisClassName) {
|
||||
break
|
||||
}
|
||||
} while (clazz != null)
|
||||
} catch (e: Throwable) {
|
||||
val stackTrace = Throwable().stackTrace
|
||||
callStackDepth = 1
|
||||
do {
|
||||
clazz = Class.forName(stackTrace[callStackDepth++].className)
|
||||
if (clazz?.name !in thisClassName) {
|
||||
break
|
||||
}
|
||||
} while (callStackDepth < stackTrace.size)
|
||||
}
|
||||
return clazz
|
||||
}
|
||||
|
||||
fun getCallerClassName(thisClassName: List<String>): String? {
|
||||
return getCallerClass(thisClassName + "com.ddbes.kotlin.util.UtilsKt")?.name
|
||||
}
|
||||
|
||||
fun getCallerClass(callStackDepth: Int): Class<*>? {
|
||||
@Suppress("DEPRECATION")
|
||||
return Reflection.getCallerClass(callStackDepth)
|
||||
}
|
||||
|
||||
fun getCallerClassName(callStackDepth: Int): String? {
|
||||
return getCallerClass(callStackDepth)?.name
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
fun CharSequence?.isNotNullOrEmpty(): Boolean {
|
||||
contract {
|
||||
returns(true) implies (this@isNotNullOrEmpty != null)
|
||||
}
|
||||
|
||||
return this != null && this.isNotEmpty()
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
fun Collection<*>?.isNotNullOrEmpty(): Boolean {
|
||||
contract {
|
||||
returns(true) implies (this@isNotNullOrEmpty != null)
|
||||
}
|
||||
|
||||
return this != null && this.isNotEmpty()
|
||||
}
|
||||
|
||||
fun String.ifEndWith(suffix: String, ignoreCase: Boolean = false, defaultValue: String.() -> String) =
|
||||
if (endsWith(suffix, ignoreCase)) {
|
||||
this.defaultValue()
|
||||
} else {
|
||||
this
|
||||
}
|
||||
|
||||
inline operator fun <K, V> MutableMap<K, V>.get(key: K, ifNull: (K) -> V): V {
|
||||
var v = get(key)
|
||||
return if (v == null) {
|
||||
v = ifNull(key)
|
||||
set(key, v)
|
||||
v
|
||||
} else {
|
||||
v
|
||||
}
|
||||
}
|
||||
|
||||
fun StringBuilder.removeLastChars(count: Int) {
|
||||
setLength(length - count)
|
||||
}
|
||||
|
||||
inline fun <T> tryOrNull(getter: () -> T) = try {
|
||||
getter()
|
||||
} catch (e: Exception) {
|
||||
null
|
||||
}
|
||||
|
||||
fun String.trimBase64(): String {
|
||||
var end = length
|
||||
while (this[end - 1] == '=') {
|
||||
end--
|
||||
}
|
||||
return substring(0, end)
|
||||
}
|
||||
|
||||
fun String.resumeBase64Trim(): String {
|
||||
val i = length % 4
|
||||
return if (i != 0) {
|
||||
this + String(CharArray(4 - i) { '=' })
|
||||
} else {
|
||||
this
|
||||
}
|
||||
}
|
||||
|
||||
fun StringBuilder(vararg strings: String): StringBuilder {
|
||||
val builder = kotlin.text.StringBuilder(strings.sumOf { it.length })
|
||||
builder.append(value = strings)
|
||||
return builder
|
||||
}
|
||||
|
||||
inline fun <T> Iterable<T>.forEachPart(size: UInt, action: (List<T>) -> Unit) {
|
||||
val list = ArrayList<T>(size.toInt() + 10)
|
||||
forEach {
|
||||
list.add(it)
|
||||
if (list.size >= size.toInt()) {
|
||||
action(list)
|
||||
list.clear()
|
||||
}
|
||||
}
|
||||
if (list.isNotEmpty()) {
|
||||
action(list)
|
||||
}
|
||||
}
|
||||
|
||||
inline fun <T> Collection<T>.forEachPart(size: UInt, action: (List<T>) -> Unit) {
|
||||
if (isEmpty()) return
|
||||
(this as Iterable<T>).forEachPart(size, action)
|
||||
}
|
||||
|
||||
inline fun <T> Queue<T>.forEachRemainingPart(size: UInt, action: (List<T>) -> Unit) {
|
||||
if (isEmpty()) return
|
||||
val list = ArrayList<T>(size.toInt() + 10)
|
||||
var element = poll()
|
||||
while (element != null) {
|
||||
list.add(element)
|
||||
element = poll()
|
||||
|
||||
if (list.size >= size.toInt()) {
|
||||
action(list)
|
||||
list.clear()
|
||||
}
|
||||
}
|
||||
if (list.isNotEmpty()) {
|
||||
action(list)
|
||||
}
|
||||
}
|
||||
|
||||
fun SimpleDateFormat.now() = format(Date())!!
|
||||
|
||||
val currentTimeMillis get() = System.currentTimeMillis()
|
||||
|
||||
inline operator fun <reified T> Array<out T>.plus(other: Array<out T>): Array<T> {
|
||||
val array = arrayOfNulls<T>(size + other.size)
|
||||
System.arraycopy(this, 0, array, 0, size)
|
||||
System.arraycopy(other, 0, array, size, other.size)
|
||||
return array.uncheckedCast()
|
||||
}
|
@ -7,6 +7,7 @@ plugins {
|
||||
dependencies {
|
||||
implementation(project(":"))
|
||||
implementation(project(":ts-core"))
|
||||
testImplementation(group = "junit", name = "junit", version = "4.13")
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,114 +0,0 @@
|
||||
package cn.tursom.core.curry
|
||||
|
||||
fun <T1, R> curry(action: (a1: T1) -> R) = Curry1(action)
|
||||
|
||||
fun <T1, T2, R> curry(action: (a1: T1, a2: T2) -> R) = Curry2 { a1: T1, a2: T2 ->
|
||||
action(a1, a2)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, R> curry(action: (a1: T1, a2: T2, a3: T3) -> R) = Curry3 { a1: T1, a2: T2, a3: T3 ->
|
||||
action(a1, a2, a3)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, R> curry(action: (T1, T2, T3, T4) -> R) = Curry4 { a1: T1, a2: T2, a3: T3, a4: T4 ->
|
||||
action(a1, a2, a3, a4)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, R> curry(action: (T1, T2, T3, T4, T5) -> R) =
|
||||
Curry5 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5 ->
|
||||
action(a1, a2, a3, a4, a5)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, R> curry(action: (T1, T2, T3, T4, T5, T6) -> R) =
|
||||
Curry6 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6 ->
|
||||
action(a1, a2, a3, a4, a5, a6)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, R> curry(action: (T1, T2, T3, T4, T5, T6, T7) -> R) =
|
||||
Curry7 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, R> curry(action: (T1, T2, T3, T4, T5, T6, T7, T8) -> R) =
|
||||
Curry8 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7, a8)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, R> curry(action: (T1, T2, T3, T4, T5, T6, T7, T8, T9) -> R) =
|
||||
Curry9 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R> curry(action: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) -> R) =
|
||||
Curry10 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R> curry(
|
||||
action: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R
|
||||
) =
|
||||
Curry11 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R> curry(
|
||||
action: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) -> R
|
||||
) = Curry12 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R> curry(
|
||||
action: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) -> R
|
||||
) = Curry13 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12,
|
||||
a13: T13 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R> curry(
|
||||
action: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) -> R
|
||||
) =
|
||||
Curry14 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R> curry(
|
||||
action: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) -> R
|
||||
) = Curry15 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12,
|
||||
a13: T13, a14: T14, a15: T15 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R> curry(
|
||||
action: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> R
|
||||
) = Curry16 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12,
|
||||
a13: T13, a14: T14, a15: T15, a16: T16 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R> curry(
|
||||
action: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) -> R
|
||||
) = Curry17 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12,
|
||||
a13: T13, a14: T14, a15: T15, a16: T16, a17: T17 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R> curry(
|
||||
action: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) -> R
|
||||
) = Curry18 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12,
|
||||
a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R> curry(
|
||||
action: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) -> R
|
||||
) = Curry19 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12,
|
||||
a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18, a19: T19 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R> curry(
|
||||
action: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) -> R
|
||||
) = Curry20 { a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12,
|
||||
a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18, a19: T19, a20: T20 ->
|
||||
action(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
@ -1,234 +0,0 @@
|
||||
//package cn.tursom.core.curry
|
||||
//
|
||||
//import com.ddbes.kotlin.util.uncheckedCast
|
||||
//
|
||||
//operator fun <T1, T2, R> Curry1<T1, Curry1<T2, R>>.invoke(a1: T1, a2: T2): R {
|
||||
// return if (this is Curry2) {
|
||||
// uncheckedCast<Curry2<T1, T2, R>>()(a1, a2)
|
||||
// } else {
|
||||
// invoke(a1)(a2)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, R> Curry1<T1, Curry1<T2, Curry1<T3, R>>>.invoke(a1: T1, a2: T2, a3: T3): R {
|
||||
// return if (this is Curry3) {
|
||||
// uncheckedCast<Curry3<T1, T2, T3, R>>()(a1, a2, a3)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, R> Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, R>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4
|
||||
//): R {
|
||||
// return if (this is Curry4) {
|
||||
// uncheckedCast<Curry4<T1, T2, T3, T4, R>>()(a1, a2, a3, a4)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, R> Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, R>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5
|
||||
//): R {
|
||||
// return if (this is Curry5) {
|
||||
// uncheckedCast<Curry5<T1, T2, T3, T4, T5, R>>()(a1, a2, a3, a4, a5)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, R>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6
|
||||
//): R {
|
||||
// return if (this is Curry6) {
|
||||
// uncheckedCast<Curry6<T1, T2, T3, T4, T5, T6, R>>()(a1, a2, a3, a4, a5, a6)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, R>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7
|
||||
//): R {
|
||||
// return if (this is Curry7) {
|
||||
// uncheckedCast<Curry7<T1, T2, T3, T4, T5, T6, T7, R>>()(a1, a2, a3, a4, a5, a6, a7)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, T8, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, Curry1<T8, R>>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8
|
||||
//): R {
|
||||
// return if (this is Curry8) {
|
||||
// uncheckedCast<Curry8<T1, T2, T3, T4, T5, T6, T7, T8, R>>()(a1, a2, a3, a4, a5, a6, a7, a8)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, Curry1<T8, Curry1<T9, R>>>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9
|
||||
//): R {
|
||||
// return if (this is Curry9) {
|
||||
// uncheckedCast<Curry9<T1, T2, T3, T4, T5, T6, T7, T8, T9, R>>()(a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, Curry1<T8, Curry1<T9, Curry1<T10, R>>>>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10
|
||||
//): R {
|
||||
// return if (this is Curry10) {
|
||||
// uncheckedCast<Curry10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R>>()(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, Curry1<T8, Curry1<T9, Curry1<T10,
|
||||
// Curry1<T11, R>>>>>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11
|
||||
//): R {
|
||||
// return if (this is Curry11) {
|
||||
// uncheckedCast<Curry11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R>>()(
|
||||
// a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, Curry1<T8, Curry1<T9, Curry1<T10,
|
||||
// Curry1<T11, Curry1<T12, R>>>>>>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12
|
||||
//): R {
|
||||
// return if (this is Curry12) {
|
||||
// uncheckedCast<Curry12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R>>()(
|
||||
// a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, Curry1<T8, Curry1<T9, Curry1<T10,
|
||||
// Curry1<T11, Curry1<T12, Curry1<T13, R>>>>>>>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13
|
||||
//): R {
|
||||
// return if (this is Curry13) {
|
||||
// uncheckedCast<Curry13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R>>()(
|
||||
// a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, Curry1<T8, Curry1<T9, Curry1<T10,
|
||||
// Curry1<T11, Curry1<T12, Curry1<T13, Curry1<T14, R>>>>>>>>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13,
|
||||
// a14: T14
|
||||
//): R {
|
||||
// return if (this is Curry14) {
|
||||
// uncheckedCast<Curry14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R>>()(
|
||||
// a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, Curry1<T8, Curry1<T9, Curry1<T10,
|
||||
// Curry1<T11, Curry1<T12, Curry1<T13, Curry1<T14, Curry1<T15, R>>>>>>>>>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13,
|
||||
// a14: T14, a15: T15
|
||||
//): R {
|
||||
// return if (this is Curry15) {
|
||||
// uncheckedCast<Curry15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R>>()(
|
||||
// a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)(a15)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, Curry1<T8, Curry1<T9, Curry1<T10,
|
||||
// Curry1<T11, Curry1<T12, Curry1<T13, Curry1<T14, Curry1<T15, Curry1<T16, R>>>>>>>>>>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13,
|
||||
// a14: T14, a15: T15, a16: T16
|
||||
//): R {
|
||||
// return if (this is Curry16) {
|
||||
// uncheckedCast<Curry16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R>>()(
|
||||
// a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)(a15)(a16)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, Curry1<T8, Curry1<T9, Curry1<T10,
|
||||
// Curry1<T11, Curry1<T12, Curry1<T13, Curry1<T14, Curry1<T15, Curry1<T16, Curry1<T17, R>>>>>>>>>>>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13,
|
||||
// a14: T14, a15: T15, a16: T16, a17: T17
|
||||
//): R {
|
||||
// return if (this is Curry17) {
|
||||
// uncheckedCast<Curry17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R>>()(
|
||||
// a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)(a15)(a16)(a17)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, Curry1<T8, Curry1<T9, Curry1<T10,
|
||||
// Curry1<T11, Curry1<T12, Curry1<T13, Curry1<T14, Curry1<T15, Curry1<T16, Curry1<T17, Curry1<T18,
|
||||
// R>>>>>>>>>>>>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13,
|
||||
// a14: T14, a15: T15, a16: T16, a17: T17, a18: T18
|
||||
//): R {
|
||||
// return if (this is Curry18) {
|
||||
// uncheckedCast<Curry18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R>>()(
|
||||
// a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)(a15)(a16)(a17)(a18)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, Curry1<T8, Curry1<T9, Curry1<T10,
|
||||
// Curry1<T11, Curry1<T12, Curry1<T13, Curry1<T14, Curry1<T15, Curry1<T16, Curry1<T17, Curry1<T18, Curry1<T19,
|
||||
// R>>>>>>>>>>>>>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13,
|
||||
// a14: T14, a15: T15, a16: T16, a17: T17, a18: T18, a19: T19
|
||||
//): R {
|
||||
// return if (this is Curry19) {
|
||||
// uncheckedCast<Curry19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R>>()(
|
||||
// a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)(a15)(a16)(a17)(a18)(a19)
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//operator fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R>
|
||||
// Curry1<T1, Curry1<T2, Curry1<T3, Curry1<T4, Curry1<T5, Curry1<T6, Curry1<T7, Curry1<T8, Curry1<T9, Curry1<T10,
|
||||
// Curry1<T11, Curry1<T12, Curry1<T13, Curry1<T14, Curry1<T15, Curry1<T16, Curry1<T17, Curry1<T18, Curry1<T19,
|
||||
// Curry1<T20, R>>>>>>>>>>>>>>>>>>>>.invoke(
|
||||
// a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13,
|
||||
// a14: T14, a15: T15, a16: T16, a17: T17, a18: T18, a19: T19, a20: T20
|
||||
//): R {
|
||||
// return if (this is Curry20) {
|
||||
// uncheckedCast<Curry20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R>>()(
|
||||
// a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
// } else {
|
||||
// invoke(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)(a15)(a16)(a17)(a18)(a19)(a20)
|
||||
// }
|
||||
//}
|
File diff suppressed because it is too large
Load Diff
@ -1,883 +0,0 @@
|
||||
package cn.tursom.core.curry
|
||||
|
||||
open class Curry1<T1, R>(
|
||||
val action1: (a1: T1) -> R,
|
||||
) {
|
||||
open operator fun invoke(a1: T1) = action1(a1)
|
||||
}
|
||||
|
||||
open class Curry2<T1, T2, R>(
|
||||
val action2: (a1: T1, a2: T2) -> R,
|
||||
) : Curry1<T1, Curry1<T2, R>>({ a1 ->
|
||||
Curry1 { a2 ->
|
||||
action2(a1, a2)
|
||||
}
|
||||
}) {
|
||||
open operator fun invoke(a1: T1, a2: T2): R {
|
||||
return action2(a1, a2)
|
||||
}
|
||||
}
|
||||
|
||||
open class Curry3<T1, T2, T3, R>(
|
||||
val action3: (a1: T1, a2: T2, a3: T3) -> R,
|
||||
) : Curry2<T1, T2, Curry1<T3, R>>({ a1, a2 ->
|
||||
Curry1 { a3 ->
|
||||
action3(a1, a2, a3)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry2<T2, T3, R> = Curry2 { a2, a3 ->
|
||||
action3(a1, a2, a3)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3): R = action3(a1, a2, a3)
|
||||
}
|
||||
|
||||
open class Curry4<T1, T2, T3, T4, R>(
|
||||
val action4: (a1: T1, a2: T2, a3: T3, a4: T4) -> R,
|
||||
) : Curry3<T1, T2, T3, Curry1<T4, R>>({ a1, a2, a3 ->
|
||||
Curry1 { a4 ->
|
||||
action4(a1, a2, a3, a4)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry3<T2, T3, T4, R> = Curry3 { a2, a3, a4 ->
|
||||
action4(a1, a2, a3, a4)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry2<T3, T4, R> = Curry2 { a3, a4 ->
|
||||
action4(a1, a2, a3, a4)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): R = action4(a1, a2, a3, a4)
|
||||
}
|
||||
|
||||
open class Curry5<T1, T2, T3, T4, T5, R>(
|
||||
val action5: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5) -> R,
|
||||
) : Curry4<T1, T2, T3, T4, Curry1<T5, R>>({ a1, a2, a3, a4 ->
|
||||
Curry1 { a5 ->
|
||||
action5(a1, a2, a3, a4, a5)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry4<T2, T3, T4, T5, R> = Curry4 { a2, a3, a4, a5 ->
|
||||
action5(a1, a2, a3, a4, a5)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry3<T3, T4, T5, R> = Curry3 { a3, a4, a5 ->
|
||||
action5(a1, a2, a3, a4, a5)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry2<T4, T5, R> = Curry2 { a4, a5 ->
|
||||
action5(a1, a2, a3, a4, a5)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): R = action5(a1, a2, a3, a4, a5)
|
||||
}
|
||||
|
||||
open class Curry6<T1, T2, T3, T4, T5, T6, R>(
|
||||
val action6: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6) -> R,
|
||||
) : Curry5<T1, T2, T3, T4, T5, Curry1<T6, R>>({ a1, a2, a3, a4, a5 ->
|
||||
Curry1 { a6 ->
|
||||
action6(a1, a2, a3, a4, a5, a6)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry5<T2, T3, T4, T5, T6, R> = Curry5 { a2, a3, a4, a5, a6 ->
|
||||
action6(a1, a2, a3, a4, a5, a6)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry4<T3, T4, T5, T6, R> = Curry4 { a3, a4, a5, a6 ->
|
||||
action6(a1, a2, a3, a4, a5, a6)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry3<T4, T5, T6, R> = Curry3 { a4, a5, a6 ->
|
||||
action6(a1, a2, a3, a4, a5, a6)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry2<T5, T6, R> = Curry2 { a5, a6 ->
|
||||
action6(a1, a2, a3, a4, a5, a6)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): R = action6(a1, a2, a3, a4, a5, a6)
|
||||
}
|
||||
|
||||
open class Curry7<T1, T2, T3, T4, T5, T6, T7, R>(
|
||||
val action7: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7) -> R,
|
||||
) : Curry6<T1, T2, T3, T4, T5, T6, Curry1<T7, R>>({ a1, a2, a3, a4, a5, a6 ->
|
||||
Curry1 { a7 ->
|
||||
action7(a1, a2, a3, a4, a5, a6, a7)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry6<T2, T3, T4, T5, T6, T7, R> = Curry6 { a2, a3, a4, a5, a6, a7 ->
|
||||
action7(a1, a2, a3, a4, a5, a6, a7)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry5<T3, T4, T5, T6, T7, R> = Curry5 { a3, a4, a5, a6, a7 ->
|
||||
action7(a1, a2, a3, a4, a5, a6, a7)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry4<T4, T5, T6, T7, R> = Curry4 { a4, a5, a6, a7 ->
|
||||
action7(a1, a2, a3, a4, a5, a6, a7)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry3<T5, T6, T7, R> = Curry3 { a5, a6, a7 ->
|
||||
action7(a1, a2, a3, a4, a5, a6, a7)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry2<T6, T7, R> = Curry2 { a6, a7 ->
|
||||
action7(a1, a2, a3, a4, a5, a6, a7)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7): R = action7(a1, a2, a3, a4, a5, a6, a7)
|
||||
}
|
||||
|
||||
open class Curry8<T1, T2, T3, T4, T5, T6, T7, T8, R>(
|
||||
val action8: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8) -> R,
|
||||
) : Curry7<T1, T2, T3, T4, T5, T6, T7, Curry1<T8, R>>({ a1, a2, a3, a4, a5, a6, a7 ->
|
||||
Curry1 { a8 ->
|
||||
action8(a1, a2, a3, a4, a5, a6, a7, a8)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry7<T2, T3, T4, T5, T6, T7, T8, R> = Curry7 { a2, a3, a4, a5, a6, a7, a8 ->
|
||||
action8(a1, a2, a3, a4, a5, a6, a7, a8)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry6<T3, T4, T5, T6, T7, T8, R> = Curry6 { a3, a4, a5, a6, a7, a8 ->
|
||||
action8(a1, a2, a3, a4, a5, a6, a7, a8)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry5<T4, T5, T6, T7, T8, R> = Curry5 { a4, a5, a6, a7, a8 ->
|
||||
action8(a1, a2, a3, a4, a5, a6, a7, a8)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry4<T5, T6, T7, T8, R> = Curry4 { a5, a6, a7, a8 ->
|
||||
action8(a1, a2, a3, a4, a5, a6, a7, a8)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry3<T6, T7, T8, R> = Curry3 { a6, a7, a8 ->
|
||||
action8(a1, a2, a3, a4, a5, a6, a7, a8)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): Curry2<T7, T8, R> = Curry2 { a7, a8 ->
|
||||
action8(a1, a2, a3, a4, a5, a6, a7, a8)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8): R = action8(a1, a2, a3, a4, a5, a6, a7, a8)
|
||||
}
|
||||
|
||||
open class Curry9<T1, T2, T3, T4, T5, T6, T7, T8, T9, R>(
|
||||
val action9: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9) -> R,
|
||||
) : Curry8<T1, T2, T3, T4, T5, T6, T7, T8, Curry1<T9, R>>({ a1, a2, a3, a4, a5, a6, a7, a8 ->
|
||||
Curry1 { a9 ->
|
||||
action9(a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry8<T2, T3, T4, T5, T6, T7, T8, T9, R> = Curry8 { a2, a3, a4, a5, a6, a7, a8, a9 ->
|
||||
action9(a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry7<T3, T4, T5, T6, T7, T8, T9, R> = Curry7 { a3, a4, a5, a6, a7, a8, a9 ->
|
||||
action9(a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry6<T4, T5, T6, T7, T8, T9, R> = Curry6 { a4, a5, a6, a7, a8, a9 ->
|
||||
action9(a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry5<T5, T6, T7, T8, T9, R> = Curry5 { a5, a6, a7, a8, a9 ->
|
||||
action9(a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry4<T6, T7, T8, T9, R> = Curry4 { a6, a7, a8, a9 ->
|
||||
action9(a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): Curry3<T7, T8, T9, R> = Curry3 { a7, a8, a9 ->
|
||||
action9(a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7): Curry2<T8, T9, R> = Curry2 { a8, a9 ->
|
||||
action9(a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9): R = action9(a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
||||
}
|
||||
|
||||
open class Curry10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R>(
|
||||
val action10: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10) -> R,
|
||||
) : Curry9<T1, T2, T3, T4, T5, T6, T7, T8, T9, Curry1<T10, R>>({ a1, a2, a3, a4, a5, a6, a7, a8, a9 ->
|
||||
Curry1 { a10 ->
|
||||
action10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry9<T2, T3, T4, T5, T6, T7, T8, T9, T10, R> = Curry9 { a2, a3, a4, a5, a6, a7, a8, a9, a10 ->
|
||||
action10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry8<T3, T4, T5, T6, T7, T8, T9, T10, R> = Curry8 { a3, a4, a5, a6, a7, a8, a9, a10 ->
|
||||
action10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry7<T4, T5, T6, T7, T8, T9, T10, R> = Curry7 { a4, a5, a6, a7, a8, a9, a10 ->
|
||||
action10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry6<T5, T6, T7, T8, T9, T10, R> = Curry6 { a5, a6, a7, a8, a9, a10 ->
|
||||
action10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry5<T6, T7, T8, T9, T10, R> = Curry5 { a6, a7, a8, a9, a10 ->
|
||||
action10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): Curry4<T7, T8, T9, T10, R> = Curry4 { a7, a8, a9, a10 ->
|
||||
action10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7): Curry3<T8, T9, T10, R> = Curry3 { a8, a9, a10 ->
|
||||
action10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8): Curry2<T9, T10, R> = Curry2 { a9, a10 ->
|
||||
action10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10): R = action10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
||||
}
|
||||
|
||||
open class Curry11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R>(
|
||||
val action11: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11) -> R,
|
||||
) : Curry10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, Curry1<T11, R>>({ a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ->
|
||||
Curry1 { a11 ->
|
||||
action11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R> = Curry10 { a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 ->
|
||||
action11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry9<T3, T4, T5, T6, T7, T8, T9, T10, T11, R> = Curry9 { a3, a4, a5, a6, a7, a8, a9, a10, a11 ->
|
||||
action11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry8<T4, T5, T6, T7, T8, T9, T10, T11, R> = Curry8 { a4, a5, a6, a7, a8, a9, a10, a11 ->
|
||||
action11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry7<T5, T6, T7, T8, T9, T10, T11, R> = Curry7 { a5, a6, a7, a8, a9, a10, a11 ->
|
||||
action11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry6<T6, T7, T8, T9, T10, T11, R> = Curry6 { a6, a7, a8, a9, a10, a11 ->
|
||||
action11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): Curry5<T7, T8, T9, T10, T11, R> = Curry5 { a7, a8, a9, a10, a11 ->
|
||||
action11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7): Curry4<T8, T9, T10, T11, R> = Curry4 { a8, a9, a10, a11 ->
|
||||
action11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8): Curry3<T9, T10, T11, R> = Curry3 { a9, a10, a11 ->
|
||||
action11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9): Curry2<T10, T11, R> = Curry2 { a10, a11 ->
|
||||
action11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11): R = action11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
|
||||
}
|
||||
|
||||
open class Curry12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R>(
|
||||
val action12: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12) -> R,
|
||||
) : Curry11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, Curry1<T12, R>>({ a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 ->
|
||||
Curry1 { a12 ->
|
||||
action12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R> = Curry11 { a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 ->
|
||||
action12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry10<T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R> = Curry10 { a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 ->
|
||||
action12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry9<T4, T5, T6, T7, T8, T9, T10, T11, T12, R> = Curry9 { a4, a5, a6, a7, a8, a9, a10, a11, a12 ->
|
||||
action12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry8<T5, T6, T7, T8, T9, T10, T11, T12, R> = Curry8 { a5, a6, a7, a8, a9, a10, a11, a12 ->
|
||||
action12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry7<T6, T7, T8, T9, T10, T11, T12, R> = Curry7 { a6, a7, a8, a9, a10, a11, a12 ->
|
||||
action12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): Curry6<T7, T8, T9, T10, T11, T12, R> = Curry6 { a7, a8, a9, a10, a11, a12 ->
|
||||
action12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7): Curry5<T8, T9, T10, T11, T12, R> = Curry5 { a8, a9, a10, a11, a12 ->
|
||||
action12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8): Curry4<T9, T10, T11, T12, R> = Curry4 { a9, a10, a11, a12 ->
|
||||
action12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9): Curry3<T10, T11, T12, R> = Curry3 { a10, a11, a12 ->
|
||||
action12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10): Curry2<T11, T12, R> = Curry2 { a11, a12 ->
|
||||
action12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12): R = action12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
|
||||
}
|
||||
|
||||
open class Curry13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R>(
|
||||
val action13: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13) -> R,
|
||||
) : Curry12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, Curry1<T13, R>>({ a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 ->
|
||||
Curry1 { a13 ->
|
||||
action13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R> = Curry12 { a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ->
|
||||
action13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry11<T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R> = Curry11 { a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ->
|
||||
action13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry10<T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R> = Curry10 { a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ->
|
||||
action13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry9<T5, T6, T7, T8, T9, T10, T11, T12, T13, R> = Curry9 { a5, a6, a7, a8, a9, a10, a11, a12, a13 ->
|
||||
action13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry8<T6, T7, T8, T9, T10, T11, T12, T13, R> = Curry8 { a6, a7, a8, a9, a10, a11, a12, a13 ->
|
||||
action13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): Curry7<T7, T8, T9, T10, T11, T12, T13, R> = Curry7 { a7, a8, a9, a10, a11, a12, a13 ->
|
||||
action13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7): Curry6<T8, T9, T10, T11, T12, T13, R> = Curry6 { a8, a9, a10, a11, a12, a13 ->
|
||||
action13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8): Curry5<T9, T10, T11, T12, T13, R> = Curry5 { a9, a10, a11, a12, a13 ->
|
||||
action13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9): Curry4<T10, T11, T12, T13, R> = Curry4 { a10, a11, a12, a13 ->
|
||||
action13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10): Curry3<T11, T12, T13, R> = Curry3 { a11, a12, a13 ->
|
||||
action13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11): Curry2<T12, T13, R> = Curry2 { a12, a13 ->
|
||||
action13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13): R = action13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
open class Curry14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R>(
|
||||
val action14: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14) -> R,
|
||||
) : Curry13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, Curry1<T14, R>>({ a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ->
|
||||
Curry1 { a14 ->
|
||||
action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R> = Curry13 { a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 ->
|
||||
action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry12<T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R> = Curry12 { a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 ->
|
||||
action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry11<T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R> = Curry11 { a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 ->
|
||||
action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry10<T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R> = Curry10 { a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 ->
|
||||
action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry9<T6, T7, T8, T9, T10, T11, T12, T13, T14, R> = Curry9 { a6, a7, a8, a9, a10, a11, a12, a13, a14 ->
|
||||
action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): Curry8<T7, T8, T9, T10, T11, T12, T13, T14, R> = Curry8 { a7, a8, a9, a10, a11, a12, a13, a14 ->
|
||||
action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7): Curry7<T8, T9, T10, T11, T12, T13, T14, R> = Curry7 { a8, a9, a10, a11, a12, a13, a14 ->
|
||||
action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8): Curry6<T9, T10, T11, T12, T13, T14, R> = Curry6 { a9, a10, a11, a12, a13, a14 ->
|
||||
action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9): Curry5<T10, T11, T12, T13, T14, R> = Curry5 { a10, a11, a12, a13, a14 ->
|
||||
action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10): Curry4<T11, T12, T13, T14, R> = Curry4 { a11, a12, a13, a14 ->
|
||||
action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11): Curry3<T12, T13, T14, R> = Curry3 { a12, a13, a14 ->
|
||||
action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12): Curry2<T13, T14, R> = Curry2 { a13, a14 ->
|
||||
action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14): R = action14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
|
||||
}
|
||||
|
||||
open class Curry15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R>(
|
||||
val action15: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15) -> R,
|
||||
) : Curry14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, Curry1<T15, R>>({ a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 ->
|
||||
Curry1 { a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R> = Curry14 { a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry13<T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R> = Curry13 { a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry12<T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R> = Curry12 { a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry11<T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R> = Curry11 { a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry10<T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R> = Curry10 { a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): Curry9<T7, T8, T9, T10, T11, T12, T13, T14, T15, R> = Curry9 { a7, a8, a9, a10, a11, a12, a13, a14, a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7): Curry8<T8, T9, T10, T11, T12, T13, T14, T15, R> = Curry8 { a8, a9, a10, a11, a12, a13, a14, a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8): Curry7<T9, T10, T11, T12, T13, T14, T15, R> = Curry7 { a9, a10, a11, a12, a13, a14, a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9): Curry6<T10, T11, T12, T13, T14, T15, R> = Curry6 { a10, a11, a12, a13, a14, a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10): Curry5<T11, T12, T13, T14, T15, R> = Curry5 { a11, a12, a13, a14, a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11): Curry4<T12, T13, T14, T15, R> = Curry4 { a12, a13, a14, a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12): Curry3<T13, T14, T15, R> = Curry3 { a13, a14, a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13): Curry2<T14, T15, R> = Curry2 { a14, a15 ->
|
||||
action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15): R = action15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
|
||||
}
|
||||
|
||||
open class Curry16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R>(
|
||||
val action16: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16) -> R,
|
||||
) : Curry15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, Curry1<T16, R>>({ a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 ->
|
||||
Curry1 { a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R> = Curry15 { a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry14<T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R> = Curry14 { a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry13<T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R> = Curry13 { a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry12<T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R> = Curry12 { a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry11<T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R> = Curry11 { a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): Curry10<T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R> = Curry10 { a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7): Curry9<T8, T9, T10, T11, T12, T13, T14, T15, T16, R> = Curry9 { a8, a9, a10, a11, a12, a13, a14, a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8): Curry8<T9, T10, T11, T12, T13, T14, T15, T16, R> = Curry8 { a9, a10, a11, a12, a13, a14, a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9): Curry7<T10, T11, T12, T13, T14, T15, T16, R> = Curry7 { a10, a11, a12, a13, a14, a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10): Curry6<T11, T12, T13, T14, T15, T16, R> = Curry6 { a11, a12, a13, a14, a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11): Curry5<T12, T13, T14, T15, T16, R> = Curry5 { a12, a13, a14, a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12): Curry4<T13, T14, T15, T16, R> = Curry4 { a13, a14, a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13): Curry3<T14, T15, T16, R> = Curry3 { a14, a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14): Curry2<T15, T16, R> = Curry2 { a15, a16 ->
|
||||
action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16): R = action16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
|
||||
}
|
||||
|
||||
open class Curry17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R>(
|
||||
val action17: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17) -> R,
|
||||
) : Curry16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, Curry1<T17, R>>({ a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ->
|
||||
Curry1 { a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R> = Curry16 { a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry15<T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R> = Curry15 { a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry14<T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R> = Curry14 { a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry13<T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R> = Curry13 { a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry12<T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R> = Curry12 { a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): Curry11<T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R> = Curry11 { a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7): Curry10<T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R> = Curry10 { a8, a9, a10, a11, a12, a13, a14, a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8): Curry9<T9, T10, T11, T12, T13, T14, T15, T16, T17, R> = Curry9 { a9, a10, a11, a12, a13, a14, a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9): Curry8<T10, T11, T12, T13, T14, T15, T16, T17, R> = Curry8 { a10, a11, a12, a13, a14, a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10): Curry7<T11, T12, T13, T14, T15, T16, T17, R> = Curry7 { a11, a12, a13, a14, a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11): Curry6<T12, T13, T14, T15, T16, T17, R> = Curry6 { a12, a13, a14, a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12): Curry5<T13, T14, T15, T16, T17, R> = Curry5 { a13, a14, a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13): Curry4<T14, T15, T16, T17, R> = Curry4 { a14, a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14): Curry3<T15, T16, T17, R> = Curry3 { a15, a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15): Curry2<T16, T17, R> = Curry2 { a16, a17 ->
|
||||
action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17): R = action17(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
}
|
||||
|
||||
open class Curry18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R>(
|
||||
val action18: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18) -> R,
|
||||
) : Curry17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, Curry1<T18, R>>({ a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17 ->
|
||||
Curry1 { a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R> = Curry17 { a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry16<T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R> = Curry16 { a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry15<T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R> = Curry15 { a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry14<T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R> = Curry14 { a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry13<T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R> = Curry13 { a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): Curry12<T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R> = Curry12 { a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7): Curry11<T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R> = Curry11 { a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8): Curry10<T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R> = Curry10 { a9, a10, a11, a12, a13, a14, a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9): Curry9<T10, T11, T12, T13, T14, T15, T16, T17, T18, R> = Curry9 { a10, a11, a12, a13, a14, a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10): Curry8<T11, T12, T13, T14, T15, T16, T17, T18, R> = Curry8 { a11, a12, a13, a14, a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11): Curry7<T12, T13, T14, T15, T16, T17, T18, R> = Curry7 { a12, a13, a14, a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12): Curry6<T13, T14, T15, T16, T17, T18, R> = Curry6 { a13, a14, a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13): Curry5<T14, T15, T16, T17, T18, R> = Curry5 { a14, a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14): Curry4<T15, T16, T17, T18, R> = Curry4 { a15, a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15): Curry3<T16, T17, T18, R> = Curry3 { a16, a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16): Curry2<T17, T18, R> = Curry2 { a17, a18 ->
|
||||
action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18): R = action18(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
|
||||
}
|
||||
|
||||
open class Curry19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R>(
|
||||
val action19: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18, a19: T19) -> R,
|
||||
) : Curry18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, Curry1<T19, R>>({ a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18 ->
|
||||
Curry1 { a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R> = Curry18 { a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry17<T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R> = Curry17 { a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry16<T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R> = Curry16 { a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry15<T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R> = Curry15 { a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry14<T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R> = Curry14 { a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): Curry13<T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R> = Curry13 { a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7): Curry12<T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R> = Curry12 { a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8): Curry11<T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R> = Curry11 { a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9): Curry10<T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R> = Curry10 { a10, a11, a12, a13, a14, a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10): Curry9<T11, T12, T13, T14, T15, T16, T17, T18, T19, R> = Curry9 { a11, a12, a13, a14, a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11): Curry8<T12, T13, T14, T15, T16, T17, T18, T19, R> = Curry8 { a12, a13, a14, a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12): Curry7<T13, T14, T15, T16, T17, T18, T19, R> = Curry7 { a13, a14, a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13): Curry6<T14, T15, T16, T17, T18, T19, R> = Curry6 { a14, a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14): Curry5<T15, T16, T17, T18, T19, R> = Curry5 { a15, a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15): Curry4<T16, T17, T18, T19, R> = Curry4 { a16, a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16): Curry3<T17, T18, T19, R> = Curry3 { a17, a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17): Curry2<T18, T19, R> = Curry2 { a18, a19 ->
|
||||
action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18, a19: T19): R = action19(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
|
||||
}
|
||||
|
||||
open class Curry20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R>(
|
||||
val action20: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18, a19: T19, a20: T20) -> R,
|
||||
) : Curry19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, Curry1<T20, R>>({ a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19 ->
|
||||
Curry1 { a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
}) {
|
||||
override operator fun invoke(a1: T1): Curry19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R> = Curry19 { a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2): Curry18<T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R> = Curry18 { a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3): Curry17<T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R> = Curry17 { a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4): Curry16<T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R> = Curry16 { a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5): Curry15<T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R> = Curry15 { a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6): Curry14<T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R> = Curry14 { a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7): Curry13<T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R> = Curry13 { a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8): Curry12<T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R> = Curry12 { a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9): Curry11<T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R> = Curry11 { a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10): Curry10<T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R> = Curry10 { a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11): Curry9<T12, T13, T14, T15, T16, T17, T18, T19, T20, R> = Curry9 { a12, a13, a14, a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12): Curry8<T13, T14, T15, T16, T17, T18, T19, T20, R> = Curry8 { a13, a14, a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13): Curry7<T14, T15, T16, T17, T18, T19, T20, R> = Curry7 { a14, a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14): Curry6<T15, T16, T17, T18, T19, T20, R> = Curry6 { a15, a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15): Curry5<T16, T17, T18, T19, T20, R> = Curry5 { a16, a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16): Curry4<T17, T18, T19, T20, R> = Curry4 { a17, a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17): Curry3<T18, T19, T20, R> = Curry3 { a18, a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
override operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18): Curry2<T19, T20, R> = Curry2 { a19, a20 ->
|
||||
action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
||||
|
||||
open operator fun invoke(a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18, a19: T19, a20: T20): R = action20(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
package com.ddbes.kotlin
|
||||
package cn.tursom.core.curry
|
||||
|
||||
import com.ddbes.kotlin.util.removeLastChars
|
||||
import cn.tursom.core.removeLastChars
|
||||
import org.junit.Test
|
||||
|
||||
class CurryBuilder {
|
||||
@ -19,6 +19,18 @@ class CurryBuilder {
|
||||
(4..20).forEach(::buildMethodInvoker)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun buildObjectI() {
|
||||
println(
|
||||
"package com.ddbes.kotlin.util\n" +
|
||||
"\n" +
|
||||
"import com.ddbes.kotlin.util.curry.*\n"
|
||||
)
|
||||
println(buildObjectI(20, "I", extensionLambda = false, extensionCurry = false))
|
||||
println(buildObjectI(20, "F", extensionLambda = true, extensionCurry = false))
|
||||
//println(buildObjectI(20, "C", extensionLambda = false, extensionCurry = true))
|
||||
}
|
||||
|
||||
fun args(index: Int) = buildString {
|
||||
repeat(index) {
|
||||
append("a${it + 1}, ")
|
||||
@ -54,6 +66,50 @@ class CurryBuilder {
|
||||
removeLastChars(2)
|
||||
}
|
||||
|
||||
fun argsWithType(fromIndex: Int, toIndex: Int) = buildString {
|
||||
(fromIndex..toIndex).forEach {
|
||||
append("a$it: T$it, ")
|
||||
}
|
||||
removeLastChars(2)
|
||||
}
|
||||
|
||||
fun buildObjectI(
|
||||
index: Int,
|
||||
objectName: String = "I",
|
||||
extensionLambda: Boolean = true,
|
||||
extensionCurry: Boolean = true,
|
||||
) = buildString {
|
||||
append("object $objectName {\n")
|
||||
append(" inline operator fun <R> invoke(f: () -> R) = f()\n")
|
||||
if (extensionLambda || extensionCurry) append("\n")
|
||||
(1..index).forEach {
|
||||
append(
|
||||
" inline operator fun <${types(it)}, R> invoke(f: (${types(it)}) -> R, ${
|
||||
argsWithType(it)
|
||||
}) = f(${args(it)})\n"
|
||||
)
|
||||
if (extensionCurry) append(
|
||||
"operator fun <${types(it)}, R> invoke(f: Curry${it}<${types(it)}, R>, ${
|
||||
argsWithType(it)
|
||||
}) = f(${args(it)})\n"
|
||||
)
|
||||
repeat(it - 1) { curry ->
|
||||
if (extensionLambda) append(
|
||||
"operator fun <${types(it)}, R> invoke(f: (${types(it)}) -> R, ${
|
||||
argsWithType(it - curry - 1)
|
||||
}) = f(${args(it - curry - 1)})\n"
|
||||
)
|
||||
if (extensionCurry) append(
|
||||
"operator fun <${types(it)}, R> invoke(f: Curry${it}<${types(it)}, R>, ${
|
||||
argsWithType(it - curry - 1)
|
||||
}) = f(${args(it - curry - 1)})\n"
|
||||
)
|
||||
}
|
||||
if (extensionLambda || extensionCurry) append("\n")
|
||||
}
|
||||
append("}\n")
|
||||
}
|
||||
|
||||
fun buildCurryClass(index: Int) {
|
||||
val args = args(index)
|
||||
val argsWithType = argsWithType(index)
|
||||
@ -119,13 +175,14 @@ class CurryBuilder {
|
||||
|
||||
fun buildMethodInvoker(index: Int) {
|
||||
val args = args(index)
|
||||
val argsWithType = argsWithType(index)
|
||||
val types = types(index)
|
||||
|
||||
println("operator fun <$types, R> (($types) -> R).invoke() = curry(this)")
|
||||
println("operator fun <$types, R> (($types) -> R).invoke() = this")
|
||||
(1 until index).forEach { argCount ->
|
||||
println("operator fun <$types, R> (($types) -> R).invoke(${argsWithType(argCount)}) = " +
|
||||
"curry(this)(${args(argCount)})")
|
||||
println(
|
||||
"operator fun <$types, R> (($types) -> R).invoke(${argsWithType(argCount)}) = " +
|
||||
"{ ${argsWithType(argCount + 1, index)} -> this(${args}) }"
|
||||
)
|
||||
}
|
||||
println()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user