Package-level declarations

Types

Link copied to clipboard
interface Collectable<out T>

一个可收集序列器。

Link copied to clipboard

FlowSynchronouslyIterateCollectable 接口,为处理流数据提供了一套方法。 扩展自 SynchronouslyIterateCollectable 接口。

Link copied to clipboard

一个可迭代的 Collectable 实现。实现 Iterable,可作为一个普通迭代器使用。

Link copied to clipboard

一个序列化的 Collectable 实现。实现 Iterable,可转化为为一个 Sequence 使用。

Link copied to clipboard

SynchronouslyIterateCollectable 包含迭代、收集和异步收集元素的相关方法。 它是 Collectable 接口的一个具体化,为我们提供了对可同步迭代集合元素进行操作的能力。 类型参数 T 定义了集合元素的类型。

Functions

Link copied to clipboard

得到一个没有元素的 Collectable

Link copied to clipboard
inline fun <T> flowCollectable(crossinline block: suspend FlowCollector<T>.() -> Unit): Collectable<T>

构建一个基于 FlowCollectable

Inherited functions

Link copied to clipboard
@JvmName(name = "valueOf")
fun <T> Iterable<T>.asCollectable(): IterableCollectable<T>

Iterable 转换为 IterableCollectable 的函数.

@JvmName(name = "valueOf")
fun <T> Sequence<T>.asCollectable(): SequenceCollectable<T>

Sequence 转换为 Collectable 的函数.

@JvmName(name = "valueOf")
fun <T> Flow<T>.asCollectable(): Collectable<T>

将一个 Flow 转化为 Collectable

@JvmName(name = "valueOf")
fun <T> Stream<T>.asCollectable(): SequenceCollectable<T>

Stream 转换为 Collectable 的函数.

Link copied to clipboard

Converts the given Flow into a synchronously iterable and collectable FlowSynchronouslyIterateCollectable.

Link copied to clipboard
fun <T : Any> Collectable<T>.asFlux(): Flux<T>

Collectable 转化为 Flux。 需要环境中存在 kotlinx-coroutines-reactor 依赖。

Link copied to clipboard

Converts an IterableCollectable to a Stream.

Converts an SequenceCollectable to a Stream.

fun <T> Collectable<T>.asStream(produceScope: CoroutineScope? = null): Stream<T>

将一个 Collectable 转化为 Stream。 如果是 IterableCollectableSequenceCollectable, 则会使用它们的 asSequence 进行转化, 否则会使用 Collectable 中合适的方法进行适当的阻塞转化

Link copied to clipboard

将一个 Collectable 转化为可以提供同步迭代能力的迭代器 SynchronouslyIterateCollectable

Link copied to clipboard
fun <T, R> Collectable<T>.collect(collector: Collector<T, *, R>): R

使用 Collector 阻塞地收集 Collectable 中的元素。

Link copied to clipboard
fun <T, R> Collectable<T>.collectAsync(scope: CoroutineScope? = null, collector: Collector<T, *, R>): CompletableFuture<R>

使用 Collector 异步地收集 Collectable 中的元素。 如果 scopenull,则会视情况使用 GlobalScope 或使用 CompletableFuture.supplyAsync

Link copied to clipboard
suspend fun <T, R> Flow<T>.collectBy(collector: Collector<T, *, R>): R
suspend fun <T, R> Flow<T>.collectBy(scope: CoroutineScope, launchContext: CoroutineContext = EmptyCoroutineContext, collector: Collector<T, *, R>): R

使用 Collector 收集 Flow 中的元素。

Link copied to clipboard
fun <T> Collectable<T>.toList(): List<T>

Collectable 阻塞地收集为 List。 会根据类型适当地优化与避免阻塞挂起操作。

Link copied to clipboard

Collectable 异步地收集为 List。 如果 scopenull,则会视情况使用 GlobalScope 或使用 CompletableFuture.supplyAsync

Link copied to clipboard
fun <T, R> Collectable<T>.transform(scope: CoroutineScope = GlobalScope, transformer: SuspendReserve.Transformer<Flow<T>, R>): R

使用 SuspendReserve.TransformerCollectable.asFlow 的结果进行转化, 例如可以使用 SuspendReserves.flux() 转化为 FluxSuspendReserves.list() 转化为 List。 注意:部分转化器可能会要求运行时存在一些依赖,请注意参考它们的注释与说明。