blob: f20deb2d38de9de33b4d79e81fc13594734c5818 [file] [log] [blame]
Vsevolod Tolstopyatovd57bfa22019-04-04 14:25:13 +03001/*
Aurimas Liutikas7b140462021-05-12 21:56:16 +00002 * Copyright 2016-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
Vsevolod Tolstopyatovd57bfa22019-04-04 14:25:13 +03003 */
4
5package kotlinx.coroutines.flow.internal
6
Roman Elizarov9b059082019-05-24 01:44:03 +03007import kotlinx.coroutines.internal.*
Vsevolod Tolstopyatovc9f25fc2019-04-11 19:14:15 +03008import kotlin.jvm.*
Roman Elizarov60f86882019-12-17 19:14:52 +03009import kotlin.native.concurrent.*
Vsevolod Tolstopyatovc9f25fc2019-04-11 19:14:15 +030010
Roman Elizarov9b059082019-05-24 01:44:03 +030011/**
12 * This value is used a a surrogate `null` value when needed.
13 * It should never leak to the outside world.
Vsevolod Tolstopyatov95875902020-10-20 02:40:38 -070014 * Its usage typically are paired with [Symbol.unbox] usages.
Roman Elizarov9b059082019-05-24 01:44:03 +030015 */
16@JvmField
17@SharedImmutable
18internal val NULL = Symbol("NULL")
Vsevolod Tolstopyatov4e47af42019-08-07 12:51:42 +030019
Vsevolod Tolstopyatov95875902020-10-20 02:40:38 -070020/**
21 * Symbol to indicate that the value is not yet initialized.
22 * It should never leak to the outside world.
23 */
24@JvmField
25@SharedImmutable
26internal val UNINITIALIZED = Symbol("UNINITIALIZED")
27
Vsevolod Tolstopyatov4e47af42019-08-07 12:51:42 +030028/*
29 * Symbol used to indicate that the flow is complete.
30 * It should never leak to the outside world.
31 */
32@JvmField
33@SharedImmutable
34internal val DONE = Symbol("DONE")