Как запустить несколько suspend функций по очереди в цикле

Есть небольшое кол-во suspend функций, все возвращают одинаковый тип данных, у некоторых разные параметры

suspend fun1()  { return true }
suspend fun2()  { return true }
suspend fun3(isYellow: Boolean) { return false }
suspend fun4() { return true }

Необходимо после каждого вызова делать проверку, и если что то вернуло false прерывать выполнение.
Хотел запихнуть все один список потом по очереди вызывать и проверять, и в принципе можно было бы, если бы все функции принимали одинаковые параметры, а так не получается.
Может кто подскажет идею или во что можно это все обернуть и в цикл засунуть?

P.S. На практике возвращается enum с большим количеством вариантов


Ответы (1 шт):

Автор решения: Eugene Krivenja

А что обернуть в лямбду чтобы скрыть разницу в параметрах? Пример:

suspend fun fun1():Boolean  { return true }
suspend fun fun2():Boolean  { return true }
suspend fun fun3(isYellow: Boolean):Boolean { return false }
suspend fun fun4():Boolean { return true }

suspend fun funComp(): Boolean {
    val funs = listOf<() -> Boolean>(
        { fun1() }, { fun2() }, { fun3(true) }, { fun4() })
    funs.forEach {
        if (!it()) {
            return false
        }
    }
    return true
}
→ Ссылка