commonMain.flow.terminal.Count.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kotlinx-coroutines-core Show documentation
Show all versions of kotlinx-coroutines-core Show documentation
Coroutines support libraries for Kotlin
/*
* Copyright 2016-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
@file:JvmMultifileClass
@file:JvmName("FlowKt")
package kotlinx.coroutines.flow
import kotlinx.coroutines.*
import kotlin.jvm.*
/**
* Returns the number of elements in this flow.
*/
@FlowPreview
public suspend fun Flow.count(): Int {
var i = 0
collect {
++i
}
return i
}
/**
* Returns the number of elements matching the given predicate.
*/
@FlowPreview
public suspend fun Flow.count(predicate: suspend (T) -> Boolean): Int {
var i = 0
collect { value ->
if (predicate(value)) {
++i
}
}
return i
}