@clayroach/effect 3.19.14-source-capture.6 → 3.19.14-source-capture.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Utils.js +1 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/internal/clock.js +1 -1
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/esm/Utils.js +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/internal/clock.js +1 -1
- package/dist/esm/internal/clock.js.map +1 -1
- package/package.json +1 -1
- package/src/Arbitrary.ts +0 -1101
- package/src/Array.ts +0 -3589
- package/src/BigDecimal.ts +0 -1349
- package/src/BigInt.ts +0 -643
- package/src/Boolean.ts +0 -287
- package/src/Brand.ts +0 -360
- package/src/Cache.ts +0 -281
- package/src/Cause.ts +0 -1555
- package/src/Channel.ts +0 -2355
- package/src/ChildExecutorDecision.ts +0 -146
- package/src/Chunk.ts +0 -1495
- package/src/Clock.ts +0 -111
- package/src/Config.ts +0 -542
- package/src/ConfigError.ts +0 -270
- package/src/ConfigProvider.ts +0 -333
- package/src/ConfigProviderPathPatch.ts +0 -100
- package/src/Console.ts +0 -226
- package/src/Context.ts +0 -585
- package/src/Cron.ts +0 -706
- package/src/Data.ts +0 -596
- package/src/DateTime.ts +0 -1686
- package/src/DefaultServices.ts +0 -34
- package/src/Deferred.ts +0 -301
- package/src/Differ.ts +0 -450
- package/src/Duration.ts +0 -1000
- package/src/Effect.ts +0 -14839
- package/src/Effectable.ts +0 -107
- package/src/Either.ts +0 -1040
- package/src/Encoding.ts +0 -195
- package/src/Equal.ts +0 -98
- package/src/Equivalence.ts +0 -235
- package/src/ExecutionPlan.ts +0 -308
- package/src/ExecutionStrategy.ts +0 -119
- package/src/Exit.ts +0 -467
- package/src/FastCheck.ts +0 -9
- package/src/Fiber.ts +0 -744
- package/src/FiberHandle.ts +0 -540
- package/src/FiberId.ts +0 -195
- package/src/FiberMap.ts +0 -656
- package/src/FiberRef.ts +0 -431
- package/src/FiberRefs.ts +0 -204
- package/src/FiberRefsPatch.ts +0 -105
- package/src/FiberSet.ts +0 -491
- package/src/FiberStatus.ts +0 -108
- package/src/Function.ts +0 -1222
- package/src/GlobalValue.ts +0 -53
- package/src/Graph.ts +0 -3732
- package/src/GroupBy.ts +0 -103
- package/src/HKT.ts +0 -45
- package/src/Hash.ts +0 -195
- package/src/HashMap.ts +0 -519
- package/src/HashRing.ts +0 -317
- package/src/HashSet.ts +0 -2346
- package/src/Inspectable.ts +0 -287
- package/src/Iterable.ts +0 -1119
- package/src/JSONSchema.ts +0 -1044
- package/src/KeyedPool.ts +0 -167
- package/src/Layer.ts +0 -1251
- package/src/LayerMap.ts +0 -436
- package/src/List.ts +0 -977
- package/src/LogLevel.ts +0 -285
- package/src/LogSpan.ts +0 -25
- package/src/Logger.ts +0 -702
- package/src/Mailbox.ts +0 -268
- package/src/ManagedRuntime.ts +0 -180
- package/src/Match.ts +0 -1477
- package/src/MergeDecision.ts +0 -95
- package/src/MergeState.ts +0 -172
- package/src/MergeStrategy.ts +0 -107
- package/src/Metric.ts +0 -780
- package/src/MetricBoundaries.ts +0 -69
- package/src/MetricHook.ts +0 -151
- package/src/MetricKey.ts +0 -224
- package/src/MetricKeyType.ts +0 -262
- package/src/MetricLabel.ts +0 -47
- package/src/MetricPair.ts +0 -71
- package/src/MetricPolling.ts +0 -148
- package/src/MetricRegistry.ts +0 -48
- package/src/MetricState.ts +0 -257
- package/src/Micro.ts +0 -4405
- package/src/ModuleVersion.ts +0 -18
- package/src/MutableHashMap.ts +0 -411
- package/src/MutableHashSet.ts +0 -706
- package/src/MutableList.ts +0 -297
- package/src/MutableQueue.ts +0 -227
- package/src/MutableRef.ts +0 -202
- package/src/NonEmptyIterable.ts +0 -32
- package/src/Number.ts +0 -1071
- package/src/Option.ts +0 -2170
- package/src/Order.ts +0 -373
- package/src/Ordering.ts +0 -111
- package/src/ParseResult.ts +0 -2031
- package/src/PartitionedSemaphore.ts +0 -200
- package/src/Pipeable.ts +0 -566
- package/src/Pool.ts +0 -204
- package/src/Predicate.ts +0 -1405
- package/src/Pretty.ts +0 -205
- package/src/PrimaryKey.ts +0 -23
- package/src/PubSub.ts +0 -182
- package/src/Queue.ts +0 -644
- package/src/Random.ts +0 -204
- package/src/RateLimiter.ts +0 -138
- package/src/RcMap.ts +0 -141
- package/src/RcRef.ts +0 -122
- package/src/Readable.ts +0 -93
- package/src/Record.ts +0 -1274
- package/src/RedBlackTree.ts +0 -421
- package/src/Redacted.ts +0 -144
- package/src/Ref.ts +0 -180
- package/src/RegExp.ts +0 -38
- package/src/Reloadable.ts +0 -127
- package/src/Request.ts +0 -347
- package/src/RequestBlock.ts +0 -118
- package/src/RequestResolver.ts +0 -366
- package/src/Resource.ts +0 -119
- package/src/Runtime.ts +0 -383
- package/src/RuntimeFlags.ts +0 -368
- package/src/RuntimeFlagsPatch.ts +0 -183
- package/src/STM.ts +0 -2045
- package/src/Schedule.ts +0 -2219
- package/src/ScheduleDecision.ts +0 -62
- package/src/ScheduleInterval.ts +0 -151
- package/src/ScheduleIntervals.ts +0 -122
- package/src/Scheduler.ts +0 -353
- package/src/Schema.ts +0 -10914
- package/src/SchemaAST.ts +0 -3043
- package/src/Scope.ts +0 -204
- package/src/ScopedCache.ts +0 -151
- package/src/ScopedRef.ts +0 -117
- package/src/Secret.ts +0 -88
- package/src/SingleProducerAsyncInput.ts +0 -67
- package/src/Sink.ts +0 -1461
- package/src/SortedMap.ts +0 -287
- package/src/SortedSet.ts +0 -390
- package/src/Stream.ts +0 -6468
- package/src/StreamEmit.ts +0 -136
- package/src/StreamHaltStrategy.ts +0 -123
- package/src/Streamable.ts +0 -45
- package/src/String.ts +0 -778
- package/src/Struct.ts +0 -243
- package/src/Subscribable.ts +0 -100
- package/src/SubscriptionRef.ts +0 -298
- package/src/Supervisor.ts +0 -240
- package/src/Symbol.ts +0 -29
- package/src/SynchronizedRef.ts +0 -270
- package/src/TArray.ts +0 -495
- package/src/TDeferred.ts +0 -100
- package/src/TMap.ts +0 -515
- package/src/TPriorityQueue.ts +0 -223
- package/src/TPubSub.ts +0 -200
- package/src/TQueue.ts +0 -432
- package/src/TRandom.ts +0 -129
- package/src/TReentrantLock.ts +0 -224
- package/src/TRef.ts +0 -178
- package/src/TSemaphore.ts +0 -129
- package/src/TSet.ts +0 -365
- package/src/TSubscriptionRef.ts +0 -192
- package/src/Take.ts +0 -258
- package/src/TestAnnotation.ts +0 -158
- package/src/TestAnnotationMap.ts +0 -119
- package/src/TestAnnotations.ts +0 -117
- package/src/TestClock.ts +0 -556
- package/src/TestConfig.ts +0 -47
- package/src/TestContext.ts +0 -36
- package/src/TestLive.ts +0 -53
- package/src/TestServices.ts +0 -390
- package/src/TestSized.ts +0 -55
- package/src/Tracer.ts +0 -198
- package/src/Trie.ts +0 -840
- package/src/Tuple.ts +0 -305
- package/src/Types.ts +0 -353
- package/src/Unify.ts +0 -113
- package/src/UpstreamPullRequest.ts +0 -117
- package/src/UpstreamPullStrategy.ts +0 -121
- package/src/Utils.ts +0 -809
- package/src/index.ts +0 -1561
- package/src/internal/array.ts +0 -8
- package/src/internal/blockedRequests.ts +0 -520
- package/src/internal/cache.ts +0 -733
- package/src/internal/cause.ts +0 -1050
- package/src/internal/channel/channelExecutor.ts +0 -1200
- package/src/internal/channel/channelState.ts +0 -134
- package/src/internal/channel/childExecutorDecision.ts +0 -96
- package/src/internal/channel/continuation.ts +0 -200
- package/src/internal/channel/mergeDecision.ts +0 -113
- package/src/internal/channel/mergeState.ts +0 -120
- package/src/internal/channel/mergeStrategy.ts +0 -72
- package/src/internal/channel/singleProducerAsyncInput.ts +0 -259
- package/src/internal/channel/subexecutor.ts +0 -229
- package/src/internal/channel/upstreamPullRequest.ts +0 -84
- package/src/internal/channel/upstreamPullStrategy.ts +0 -87
- package/src/internal/channel.ts +0 -2603
- package/src/internal/clock.ts +0 -95
- package/src/internal/completedRequestMap.ts +0 -9
- package/src/internal/concurrency.ts +0 -54
- package/src/internal/config.ts +0 -716
- package/src/internal/configError.ts +0 -304
- package/src/internal/configProvider/pathPatch.ts +0 -97
- package/src/internal/configProvider.ts +0 -799
- package/src/internal/console.ts +0 -153
- package/src/internal/context.ts +0 -337
- package/src/internal/core-effect.ts +0 -2293
- package/src/internal/core-stream.ts +0 -998
- package/src/internal/core.ts +0 -3273
- package/src/internal/data.ts +0 -36
- package/src/internal/dataSource.ts +0 -327
- package/src/internal/dateTime.ts +0 -1277
- package/src/internal/defaultServices/console.ts +0 -100
- package/src/internal/defaultServices.ts +0 -163
- package/src/internal/deferred.ts +0 -46
- package/src/internal/differ/chunkPatch.ts +0 -211
- package/src/internal/differ/contextPatch.ts +0 -232
- package/src/internal/differ/hashMapPatch.ts +0 -220
- package/src/internal/differ/hashSetPatch.ts +0 -176
- package/src/internal/differ/orPatch.ts +0 -311
- package/src/internal/differ/readonlyArrayPatch.ts +0 -210
- package/src/internal/differ.ts +0 -200
- package/src/internal/doNotation.ts +0 -80
- package/src/internal/effect/circular.ts +0 -905
- package/src/internal/effectable.ts +0 -131
- package/src/internal/either.ts +0 -110
- package/src/internal/encoding/base64.ts +0 -286
- package/src/internal/encoding/base64Url.ts +0 -29
- package/src/internal/encoding/common.ts +0 -51
- package/src/internal/encoding/hex.ts +0 -315
- package/src/internal/errors.ts +0 -7
- package/src/internal/executionPlan.ts +0 -114
- package/src/internal/executionStrategy.ts +0 -74
- package/src/internal/fiber.ts +0 -388
- package/src/internal/fiberId.ts +0 -267
- package/src/internal/fiberMessage.ts +0 -82
- package/src/internal/fiberRefs/patch.ts +0 -144
- package/src/internal/fiberRefs.ts +0 -297
- package/src/internal/fiberRuntime.ts +0 -3915
- package/src/internal/fiberScope.ts +0 -71
- package/src/internal/fiberStatus.ts +0 -119
- package/src/internal/groupBy.ts +0 -530
- package/src/internal/hashMap/array.ts +0 -49
- package/src/internal/hashMap/bitwise.ts +0 -32
- package/src/internal/hashMap/config.ts +0 -14
- package/src/internal/hashMap/keySet.ts +0 -8
- package/src/internal/hashMap/node.ts +0 -391
- package/src/internal/hashMap.ts +0 -586
- package/src/internal/hashSet.ts +0 -323
- package/src/internal/keyedPool.ts +0 -244
- package/src/internal/layer/circular.ts +0 -228
- package/src/internal/layer.ts +0 -1487
- package/src/internal/logSpan.ts +0 -20
- package/src/internal/logger-circular.ts +0 -24
- package/src/internal/logger.ts +0 -485
- package/src/internal/mailbox.ts +0 -561
- package/src/internal/managedRuntime/circular.ts +0 -6
- package/src/internal/managedRuntime.ts +0 -134
- package/src/internal/matcher.ts +0 -652
- package/src/internal/metric/boundaries.ts +0 -75
- package/src/internal/metric/hook.ts +0 -483
- package/src/internal/metric/key.ts +0 -167
- package/src/internal/metric/keyType.ts +0 -238
- package/src/internal/metric/label.ts +0 -41
- package/src/internal/metric/pair.ts +0 -48
- package/src/internal/metric/polling.ts +0 -149
- package/src/internal/metric/registry.ts +0 -187
- package/src/internal/metric/state.ts +0 -290
- package/src/internal/metric.ts +0 -577
- package/src/internal/opCodes/cause.ts +0 -35
- package/src/internal/opCodes/channel.ts +0 -83
- package/src/internal/opCodes/channelChildExecutorDecision.ts +0 -17
- package/src/internal/opCodes/channelMergeDecision.ts +0 -11
- package/src/internal/opCodes/channelMergeState.ts +0 -17
- package/src/internal/opCodes/channelMergeStrategy.ts +0 -11
- package/src/internal/opCodes/channelState.ts +0 -23
- package/src/internal/opCodes/channelUpstreamPullRequest.ts +0 -11
- package/src/internal/opCodes/channelUpstreamPullStrategy.ts +0 -11
- package/src/internal/opCodes/config.ts +0 -65
- package/src/internal/opCodes/configError.ts +0 -35
- package/src/internal/opCodes/continuation.ts +0 -11
- package/src/internal/opCodes/deferred.ts +0 -11
- package/src/internal/opCodes/effect.ts +0 -89
- package/src/internal/opCodes/layer.ts +0 -59
- package/src/internal/opCodes/streamHaltStrategy.ts +0 -23
- package/src/internal/option.ts +0 -80
- package/src/internal/pool.ts +0 -432
- package/src/internal/pubsub.ts +0 -1762
- package/src/internal/query.ts +0 -204
- package/src/internal/queue.ts +0 -766
- package/src/internal/random.ts +0 -161
- package/src/internal/rateLimiter.ts +0 -93
- package/src/internal/rcMap.ts +0 -285
- package/src/internal/rcRef.ts +0 -192
- package/src/internal/redBlackTree/iterator.ts +0 -200
- package/src/internal/redBlackTree/node.ts +0 -68
- package/src/internal/redBlackTree.ts +0 -1245
- package/src/internal/redacted.ts +0 -73
- package/src/internal/ref.ts +0 -171
- package/src/internal/reloadable.ts +0 -140
- package/src/internal/request.ts +0 -177
- package/src/internal/resource.ts +0 -76
- package/src/internal/ringBuffer.ts +0 -68
- package/src/internal/runtime.ts +0 -558
- package/src/internal/runtimeFlags.ts +0 -188
- package/src/internal/runtimeFlagsPatch.ts +0 -103
- package/src/internal/schedule/decision.ts +0 -47
- package/src/internal/schedule/interval.ts +0 -101
- package/src/internal/schedule/intervals.ts +0 -180
- package/src/internal/schedule.ts +0 -2199
- package/src/internal/schema/errors.ts +0 -191
- package/src/internal/schema/schemaId.ts +0 -106
- package/src/internal/schema/util.ts +0 -50
- package/src/internal/scopedCache.ts +0 -644
- package/src/internal/scopedRef.ts +0 -118
- package/src/internal/secret.ts +0 -89
- package/src/internal/singleShotGen.ts +0 -35
- package/src/internal/sink.ts +0 -2120
- package/src/internal/stack.ts +0 -10
- package/src/internal/stm/core.ts +0 -817
- package/src/internal/stm/entry.ts +0 -59
- package/src/internal/stm/journal.ts +0 -123
- package/src/internal/stm/opCodes/stm.ts +0 -71
- package/src/internal/stm/opCodes/stmState.ts +0 -17
- package/src/internal/stm/opCodes/strategy.ts +0 -17
- package/src/internal/stm/opCodes/tExit.ts +0 -29
- package/src/internal/stm/opCodes/tryCommit.ts +0 -11
- package/src/internal/stm/stm.ts +0 -1453
- package/src/internal/stm/stmState.ts +0 -136
- package/src/internal/stm/tArray.ts +0 -550
- package/src/internal/stm/tDeferred.ts +0 -81
- package/src/internal/stm/tExit.ts +0 -190
- package/src/internal/stm/tMap.ts +0 -824
- package/src/internal/stm/tPriorityQueue.ts +0 -267
- package/src/internal/stm/tPubSub.ts +0 -551
- package/src/internal/stm/tQueue.ts +0 -393
- package/src/internal/stm/tRandom.ts +0 -140
- package/src/internal/stm/tReentrantLock.ts +0 -352
- package/src/internal/stm/tRef.ts +0 -195
- package/src/internal/stm/tSemaphore.ts +0 -113
- package/src/internal/stm/tSet.ts +0 -259
- package/src/internal/stm/tSubscriptionRef.ts +0 -286
- package/src/internal/stm/tryCommit.ts +0 -34
- package/src/internal/stm/txnId.ts +0 -14
- package/src/internal/stm/versioned.ts +0 -4
- package/src/internal/stream/debounceState.ts +0 -57
- package/src/internal/stream/emit.ts +0 -123
- package/src/internal/stream/haltStrategy.ts +0 -94
- package/src/internal/stream/handoff.ts +0 -187
- package/src/internal/stream/handoffSignal.ts +0 -59
- package/src/internal/stream/pull.ts +0 -34
- package/src/internal/stream/sinkEndReason.ts +0 -30
- package/src/internal/stream/zipAllState.ts +0 -88
- package/src/internal/stream/zipChunksState.ts +0 -56
- package/src/internal/stream.ts +0 -8801
- package/src/internal/string-utils.ts +0 -107
- package/src/internal/subscriptionRef.ts +0 -138
- package/src/internal/supervisor/patch.ts +0 -190
- package/src/internal/supervisor.ts +0 -303
- package/src/internal/synchronizedRef.ts +0 -114
- package/src/internal/take.ts +0 -199
- package/src/internal/testing/sleep.ts +0 -27
- package/src/internal/testing/suspendedWarningData.ts +0 -85
- package/src/internal/testing/warningData.ts +0 -94
- package/src/internal/tracer.ts +0 -293
- package/src/internal/trie.ts +0 -722
- package/src/internal/version.ts +0 -7
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import * as Cause from "../../Cause.js"
|
|
2
|
-
import * as Chunk from "../../Chunk.js"
|
|
3
|
-
import * as Effect from "../../Effect.js"
|
|
4
|
-
import * as Exit from "../../Exit.js"
|
|
5
|
-
import { pipe } from "../../Function.js"
|
|
6
|
-
import * as Option from "../../Option.js"
|
|
7
|
-
import type * as Queue from "../../Queue.js"
|
|
8
|
-
import type * as Scheduler from "../../Scheduler.js"
|
|
9
|
-
import type * as Emit from "../../StreamEmit.js"
|
|
10
|
-
|
|
11
|
-
/** @internal */
|
|
12
|
-
export const make = <R, E, A, B>(
|
|
13
|
-
emit: (f: Effect.Effect<Chunk.Chunk<A>, Option.Option<E>, R>) => Promise<B>
|
|
14
|
-
): Emit.Emit<R, E, A, B> => {
|
|
15
|
-
const ops: Emit.EmitOps<R, E, A, B> = {
|
|
16
|
-
chunk(this: Emit.Emit<R, E, A, B>, as: Chunk.Chunk<A>) {
|
|
17
|
-
return this(Effect.succeed(as))
|
|
18
|
-
},
|
|
19
|
-
die<Err>(this: Emit.Emit<R, E, A, B>, defect: Err) {
|
|
20
|
-
return this(Effect.die(defect))
|
|
21
|
-
},
|
|
22
|
-
dieMessage(this: Emit.Emit<R, E, A, B>, message: string) {
|
|
23
|
-
return this(Effect.dieMessage(message))
|
|
24
|
-
},
|
|
25
|
-
done(this: Emit.Emit<R, E, A, B>, exit: Exit.Exit<A, E>) {
|
|
26
|
-
return this(Effect.suspend(() => Exit.mapBoth(exit, { onFailure: Option.some, onSuccess: Chunk.of })))
|
|
27
|
-
},
|
|
28
|
-
end(this: Emit.Emit<R, E, A, B>) {
|
|
29
|
-
return this(Effect.fail(Option.none()))
|
|
30
|
-
},
|
|
31
|
-
fail(this: Emit.Emit<R, E, A, B>, e: E) {
|
|
32
|
-
return this(Effect.fail(Option.some(e)))
|
|
33
|
-
},
|
|
34
|
-
fromEffect(this: Emit.Emit<R, E, A, B>, effect: Effect.Effect<A, E, R>) {
|
|
35
|
-
return this(Effect.mapBoth(effect, { onFailure: Option.some, onSuccess: Chunk.of }))
|
|
36
|
-
},
|
|
37
|
-
fromEffectChunk(this: Emit.Emit<R, E, A, B>, effect: Effect.Effect<Chunk.Chunk<A>, E, R>) {
|
|
38
|
-
return this(pipe(effect, Effect.mapError(Option.some)))
|
|
39
|
-
},
|
|
40
|
-
halt(this: Emit.Emit<R, E, A, B>, cause: Cause.Cause<E>) {
|
|
41
|
-
return this(Effect.failCause(pipe(cause, Cause.map(Option.some))))
|
|
42
|
-
},
|
|
43
|
-
single(this: Emit.Emit<R, E, A, B>, value: A) {
|
|
44
|
-
return this(Effect.succeed(Chunk.of(value)))
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return Object.assign(emit, ops)
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/** @internal */
|
|
51
|
-
export const makePush = <E, A>(
|
|
52
|
-
queue: Queue.Queue<Array<A> | Exit.Exit<void, E>>,
|
|
53
|
-
scheduler: Scheduler.Scheduler
|
|
54
|
-
): Emit.EmitOpsPush<E, A> => {
|
|
55
|
-
let finished = false
|
|
56
|
-
let buffer: Array<A> = []
|
|
57
|
-
let running = false
|
|
58
|
-
function array(items: ReadonlyArray<A>) {
|
|
59
|
-
if (finished) return false
|
|
60
|
-
if (items.length <= 50_000) {
|
|
61
|
-
buffer.push.apply(buffer, items as Array<A>)
|
|
62
|
-
} else {
|
|
63
|
-
for (let i = 0; i < items.length; i++) {
|
|
64
|
-
buffer.push(items[0])
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (!running) {
|
|
68
|
-
running = true
|
|
69
|
-
scheduler.scheduleTask(flush, 0)
|
|
70
|
-
}
|
|
71
|
-
return true
|
|
72
|
-
}
|
|
73
|
-
function flush() {
|
|
74
|
-
running = false
|
|
75
|
-
if (buffer.length > 0) {
|
|
76
|
-
queue.unsafeOffer(buffer)
|
|
77
|
-
buffer = []
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
function done(exit: Exit.Exit<A, E>) {
|
|
81
|
-
if (finished) return
|
|
82
|
-
finished = true
|
|
83
|
-
if (exit._tag === "Success") {
|
|
84
|
-
buffer.push(exit.value)
|
|
85
|
-
}
|
|
86
|
-
flush()
|
|
87
|
-
queue.unsafeOffer(exit._tag === "Success" ? Exit.void : exit)
|
|
88
|
-
}
|
|
89
|
-
return {
|
|
90
|
-
single(value: A) {
|
|
91
|
-
if (finished) return false
|
|
92
|
-
buffer.push(value)
|
|
93
|
-
if (!running) {
|
|
94
|
-
running = true
|
|
95
|
-
scheduler.scheduleTask(flush, 0)
|
|
96
|
-
}
|
|
97
|
-
return true
|
|
98
|
-
},
|
|
99
|
-
array,
|
|
100
|
-
chunk(chunk) {
|
|
101
|
-
return array(Chunk.toReadonlyArray(chunk))
|
|
102
|
-
},
|
|
103
|
-
done,
|
|
104
|
-
end() {
|
|
105
|
-
if (finished) return
|
|
106
|
-
finished = true
|
|
107
|
-
flush()
|
|
108
|
-
queue.unsafeOffer(Exit.void)
|
|
109
|
-
},
|
|
110
|
-
halt(cause: Cause.Cause<E>) {
|
|
111
|
-
return done(Exit.failCause(cause))
|
|
112
|
-
},
|
|
113
|
-
fail(error: E) {
|
|
114
|
-
return done(Exit.fail(error))
|
|
115
|
-
},
|
|
116
|
-
die<Err>(defect: Err): void {
|
|
117
|
-
return done(Exit.die(defect))
|
|
118
|
-
},
|
|
119
|
-
dieMessage(message: string): void {
|
|
120
|
-
return done(Exit.die(new Error(message)))
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { dual } from "../../Function.js"
|
|
2
|
-
import type * as HaltStrategy from "../../StreamHaltStrategy.js"
|
|
3
|
-
import * as OpCodes from "../opCodes/streamHaltStrategy.js"
|
|
4
|
-
|
|
5
|
-
/** @internal */
|
|
6
|
-
export const Left: HaltStrategy.HaltStrategy = {
|
|
7
|
-
_tag: OpCodes.OP_LEFT
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/** @internal */
|
|
11
|
-
export const Right: HaltStrategy.HaltStrategy = {
|
|
12
|
-
_tag: OpCodes.OP_RIGHT
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/** @internal */
|
|
16
|
-
export const Both: HaltStrategy.HaltStrategy = {
|
|
17
|
-
_tag: OpCodes.OP_BOTH
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/** @internal */
|
|
21
|
-
export const Either: HaltStrategy.HaltStrategy = {
|
|
22
|
-
_tag: OpCodes.OP_EITHER
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/** @internal */
|
|
26
|
-
export const fromInput = (input: HaltStrategy.HaltStrategyInput): HaltStrategy.HaltStrategy => {
|
|
27
|
-
switch (input) {
|
|
28
|
-
case "left":
|
|
29
|
-
return Left
|
|
30
|
-
case "right":
|
|
31
|
-
return Right
|
|
32
|
-
case "both":
|
|
33
|
-
return Both
|
|
34
|
-
case "either":
|
|
35
|
-
return Either
|
|
36
|
-
default:
|
|
37
|
-
return input
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/** @internal */
|
|
42
|
-
export const isLeft = (self: HaltStrategy.HaltStrategy): self is HaltStrategy.Left => self._tag === OpCodes.OP_LEFT
|
|
43
|
-
|
|
44
|
-
/** @internal */
|
|
45
|
-
export const isRight = (self: HaltStrategy.HaltStrategy): self is HaltStrategy.Right => self._tag === OpCodes.OP_RIGHT
|
|
46
|
-
|
|
47
|
-
/** @internal */
|
|
48
|
-
export const isBoth = (self: HaltStrategy.HaltStrategy): self is HaltStrategy.Both => self._tag === OpCodes.OP_BOTH
|
|
49
|
-
|
|
50
|
-
/** @internal */
|
|
51
|
-
export const isEither = (self: HaltStrategy.HaltStrategy): self is HaltStrategy.Either =>
|
|
52
|
-
self._tag === OpCodes.OP_EITHER
|
|
53
|
-
|
|
54
|
-
/** @internal */
|
|
55
|
-
export const match = dual<
|
|
56
|
-
<Z>(options: {
|
|
57
|
-
readonly onLeft: () => Z
|
|
58
|
-
readonly onRight: () => Z
|
|
59
|
-
readonly onBoth: () => Z
|
|
60
|
-
readonly onEither: () => Z
|
|
61
|
-
}) => (self: HaltStrategy.HaltStrategy) => Z,
|
|
62
|
-
<Z>(
|
|
63
|
-
self: HaltStrategy.HaltStrategy,
|
|
64
|
-
options: {
|
|
65
|
-
readonly onLeft: () => Z
|
|
66
|
-
readonly onRight: () => Z
|
|
67
|
-
readonly onBoth: () => Z
|
|
68
|
-
readonly onEither: () => Z
|
|
69
|
-
}
|
|
70
|
-
) => Z
|
|
71
|
-
>(2, <Z>(
|
|
72
|
-
self: HaltStrategy.HaltStrategy,
|
|
73
|
-
options: {
|
|
74
|
-
readonly onLeft: () => Z
|
|
75
|
-
readonly onRight: () => Z
|
|
76
|
-
readonly onBoth: () => Z
|
|
77
|
-
readonly onEither: () => Z
|
|
78
|
-
}
|
|
79
|
-
): Z => {
|
|
80
|
-
switch (self._tag) {
|
|
81
|
-
case OpCodes.OP_LEFT: {
|
|
82
|
-
return options.onLeft()
|
|
83
|
-
}
|
|
84
|
-
case OpCodes.OP_RIGHT: {
|
|
85
|
-
return options.onRight()
|
|
86
|
-
}
|
|
87
|
-
case OpCodes.OP_BOTH: {
|
|
88
|
-
return options.onBoth()
|
|
89
|
-
}
|
|
90
|
-
case OpCodes.OP_EITHER: {
|
|
91
|
-
return options.onEither()
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
})
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import * as Deferred from "../../Deferred.js"
|
|
2
|
-
import * as Effect from "../../Effect.js"
|
|
3
|
-
import { dual, pipe } from "../../Function.js"
|
|
4
|
-
import * as Option from "../../Option.js"
|
|
5
|
-
import * as Ref from "../../Ref.js"
|
|
6
|
-
|
|
7
|
-
/** @internal */
|
|
8
|
-
export const HandoffTypeId = Symbol.for("effect/Stream/Handoff")
|
|
9
|
-
|
|
10
|
-
/** @internal */
|
|
11
|
-
export type HandoffTypeId = typeof HandoffTypeId
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* A synchronous queue-like abstraction that allows a producer to offer an
|
|
15
|
-
* element and wait for it to be taken, and allows a consumer to wait for an
|
|
16
|
-
* element to be available.
|
|
17
|
-
*
|
|
18
|
-
* @internal
|
|
19
|
-
*/
|
|
20
|
-
export interface Handoff<in out A> extends Handoff.Variance<A> {
|
|
21
|
-
readonly ref: Ref.Ref<Handoff.State<A>>
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/** @internal */
|
|
25
|
-
export const OP_HANDOFF_STATE_EMPTY = "Empty" as const
|
|
26
|
-
|
|
27
|
-
/** @internal */
|
|
28
|
-
export type OP_HANDOFF_STATE_EMPTY = typeof OP_HANDOFF_STATE_EMPTY
|
|
29
|
-
|
|
30
|
-
/** @internal */
|
|
31
|
-
export const OP_HANDOFF_STATE_FULL = "Full" as const
|
|
32
|
-
|
|
33
|
-
/** @internal */
|
|
34
|
-
export type OP_HANDOFF_STATE_FULL = typeof OP_HANDOFF_STATE_FULL
|
|
35
|
-
|
|
36
|
-
/** @internal */
|
|
37
|
-
export declare namespace Handoff {
|
|
38
|
-
/** @internal */
|
|
39
|
-
export interface Variance<in out A> {
|
|
40
|
-
readonly [HandoffTypeId]: {
|
|
41
|
-
readonly _A: (_: A) => A
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/** @internal */
|
|
46
|
-
export type State<A> = Empty | Full<A>
|
|
47
|
-
|
|
48
|
-
/** @internal */
|
|
49
|
-
export interface Empty {
|
|
50
|
-
readonly _tag: OP_HANDOFF_STATE_EMPTY
|
|
51
|
-
readonly notifyConsumer: Deferred.Deferred<void>
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/** @internal */
|
|
55
|
-
export interface Full<out A> {
|
|
56
|
-
readonly _tag: OP_HANDOFF_STATE_FULL
|
|
57
|
-
readonly value: A
|
|
58
|
-
readonly notifyProducer: Deferred.Deferred<void>
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/** @internal */
|
|
63
|
-
const handoffStateEmpty = <A>(notifyConsumer: Deferred.Deferred<void>): Handoff.State<A> => ({
|
|
64
|
-
_tag: OP_HANDOFF_STATE_EMPTY,
|
|
65
|
-
notifyConsumer
|
|
66
|
-
})
|
|
67
|
-
|
|
68
|
-
/** @internal */
|
|
69
|
-
const handoffStateFull = <A>(value: A, notifyProducer: Deferred.Deferred<void>): Handoff.State<A> => ({
|
|
70
|
-
_tag: OP_HANDOFF_STATE_FULL,
|
|
71
|
-
value,
|
|
72
|
-
notifyProducer
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
/** @internal */
|
|
76
|
-
const handoffStateMatch = <A, Z>(
|
|
77
|
-
onEmpty: (notifyConsumer: Deferred.Deferred<void>) => Z,
|
|
78
|
-
onFull: (value: A, notifyProducer: Deferred.Deferred<void>) => Z
|
|
79
|
-
) => {
|
|
80
|
-
return (self: Handoff.State<A>): Z => {
|
|
81
|
-
switch (self._tag) {
|
|
82
|
-
case OP_HANDOFF_STATE_EMPTY: {
|
|
83
|
-
return onEmpty(self.notifyConsumer)
|
|
84
|
-
}
|
|
85
|
-
case OP_HANDOFF_STATE_FULL: {
|
|
86
|
-
return onFull(self.value, self.notifyProducer)
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const handoffVariance = {
|
|
93
|
-
/* c8 ignore next */
|
|
94
|
-
_A: (_: any) => _
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/** @internal */
|
|
98
|
-
export const make = <A>(): Effect.Effect<Handoff<A>> =>
|
|
99
|
-
pipe(
|
|
100
|
-
Deferred.make<void>(),
|
|
101
|
-
Effect.flatMap((deferred) => Ref.make(handoffStateEmpty<A>(deferred))),
|
|
102
|
-
Effect.map((ref): Handoff<A> => ({
|
|
103
|
-
[HandoffTypeId]: handoffVariance,
|
|
104
|
-
ref
|
|
105
|
-
}))
|
|
106
|
-
)
|
|
107
|
-
|
|
108
|
-
/** @internal */
|
|
109
|
-
export const offer = dual<
|
|
110
|
-
<A>(value: A) => (self: Handoff<A>) => Effect.Effect<void>,
|
|
111
|
-
<A>(self: Handoff<A>, value: A) => Effect.Effect<void>
|
|
112
|
-
>(2, (self, value): Effect.Effect<void> => {
|
|
113
|
-
return Effect.flatMap(Deferred.make<void>(), (deferred) =>
|
|
114
|
-
Effect.flatten(
|
|
115
|
-
Ref.modify(self.ref, (state) =>
|
|
116
|
-
pipe(
|
|
117
|
-
state,
|
|
118
|
-
handoffStateMatch(
|
|
119
|
-
(notifyConsumer) => [
|
|
120
|
-
Effect.zipRight(
|
|
121
|
-
Deferred.succeed(notifyConsumer, void 0),
|
|
122
|
-
Deferred.await(deferred)
|
|
123
|
-
),
|
|
124
|
-
handoffStateFull(value, deferred)
|
|
125
|
-
],
|
|
126
|
-
(_, notifyProducer) => [
|
|
127
|
-
Effect.flatMap(
|
|
128
|
-
Deferred.await(notifyProducer),
|
|
129
|
-
() => pipe(self, offer(value))
|
|
130
|
-
),
|
|
131
|
-
state
|
|
132
|
-
]
|
|
133
|
-
)
|
|
134
|
-
))
|
|
135
|
-
))
|
|
136
|
-
})
|
|
137
|
-
|
|
138
|
-
/** @internal */
|
|
139
|
-
export const take = <A>(self: Handoff<A>): Effect.Effect<A> =>
|
|
140
|
-
Effect.flatMap(Deferred.make<void>(), (deferred) =>
|
|
141
|
-
Effect.flatten(
|
|
142
|
-
Ref.modify(self.ref, (state) =>
|
|
143
|
-
pipe(
|
|
144
|
-
state,
|
|
145
|
-
handoffStateMatch(
|
|
146
|
-
(notifyConsumer) =>
|
|
147
|
-
[
|
|
148
|
-
Effect.flatMap(
|
|
149
|
-
Deferred.await(notifyConsumer),
|
|
150
|
-
() => take(self)
|
|
151
|
-
),
|
|
152
|
-
state
|
|
153
|
-
] as const,
|
|
154
|
-
(value, notifyProducer) => [
|
|
155
|
-
Effect.as(
|
|
156
|
-
Deferred.succeed(notifyProducer, void 0),
|
|
157
|
-
value
|
|
158
|
-
),
|
|
159
|
-
handoffStateEmpty<A>(deferred)
|
|
160
|
-
]
|
|
161
|
-
)
|
|
162
|
-
))
|
|
163
|
-
))
|
|
164
|
-
|
|
165
|
-
/** @internal */
|
|
166
|
-
export const poll = <A>(self: Handoff<A>): Effect.Effect<Option.Option<A>> =>
|
|
167
|
-
Effect.flatMap(Deferred.make<void>(), (deferred) =>
|
|
168
|
-
Effect.flatten(
|
|
169
|
-
Ref.modify(self.ref, (state) =>
|
|
170
|
-
pipe(
|
|
171
|
-
state,
|
|
172
|
-
handoffStateMatch(
|
|
173
|
-
() =>
|
|
174
|
-
[
|
|
175
|
-
Effect.succeed(Option.none<A>()),
|
|
176
|
-
state
|
|
177
|
-
] as const,
|
|
178
|
-
(value, notifyProducer) => [
|
|
179
|
-
Effect.as(
|
|
180
|
-
Deferred.succeed(notifyProducer, void 0),
|
|
181
|
-
Option.some(value)
|
|
182
|
-
),
|
|
183
|
-
handoffStateEmpty<A>(deferred)
|
|
184
|
-
]
|
|
185
|
-
)
|
|
186
|
-
))
|
|
187
|
-
))
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import type * as Cause from "../../Cause.js"
|
|
2
|
-
import type * as Chunk from "../../Chunk.js"
|
|
3
|
-
import type * as SinkEndReason from "./sinkEndReason.js"
|
|
4
|
-
|
|
5
|
-
/** @internal */
|
|
6
|
-
export type HandoffSignal<A, E = never> = Emit<A> | Halt<E> | End
|
|
7
|
-
|
|
8
|
-
/** @internal */
|
|
9
|
-
export const OP_EMIT = "Emit" as const
|
|
10
|
-
|
|
11
|
-
/** @internal */
|
|
12
|
-
export type OP_EMIT = typeof OP_EMIT
|
|
13
|
-
|
|
14
|
-
/** @internal */
|
|
15
|
-
export const OP_HALT = "Halt" as const
|
|
16
|
-
|
|
17
|
-
/** @internal */
|
|
18
|
-
export type OP_HALT = typeof OP_HALT
|
|
19
|
-
|
|
20
|
-
/** @internal */
|
|
21
|
-
export const OP_END = "End" as const
|
|
22
|
-
|
|
23
|
-
/** @internal */
|
|
24
|
-
export type OP_END = typeof OP_END
|
|
25
|
-
|
|
26
|
-
export interface Emit<out A> {
|
|
27
|
-
readonly _tag: OP_EMIT
|
|
28
|
-
readonly elements: Chunk.Chunk<A>
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/** @internal */
|
|
32
|
-
export interface Halt<out E> {
|
|
33
|
-
readonly _tag: OP_HALT
|
|
34
|
-
readonly cause: Cause.Cause<E>
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/** @internal */
|
|
38
|
-
export interface End {
|
|
39
|
-
readonly _tag: OP_END
|
|
40
|
-
readonly reason: SinkEndReason.SinkEndReason
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/** @internal */
|
|
44
|
-
export const emit = <A>(elements: Chunk.Chunk<A>): HandoffSignal<A> => ({
|
|
45
|
-
_tag: OP_EMIT,
|
|
46
|
-
elements
|
|
47
|
-
})
|
|
48
|
-
|
|
49
|
-
/** @internal */
|
|
50
|
-
export const halt = <E>(cause: Cause.Cause<E>): HandoffSignal<never, E> => ({
|
|
51
|
-
_tag: OP_HALT,
|
|
52
|
-
cause
|
|
53
|
-
})
|
|
54
|
-
|
|
55
|
-
/** @internal */
|
|
56
|
-
export const end = (reason: SinkEndReason.SinkEndReason): HandoffSignal<never> => ({
|
|
57
|
-
_tag: OP_END,
|
|
58
|
-
reason
|
|
59
|
-
})
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type * as Cause from "../../Cause.js"
|
|
2
|
-
import * as Chunk from "../../Chunk.js"
|
|
3
|
-
import * as Effect from "../../Effect.js"
|
|
4
|
-
import * as Option from "../../Option.js"
|
|
5
|
-
import * as Queue from "../../Queue.js"
|
|
6
|
-
import type * as Take from "../../Take.js"
|
|
7
|
-
import * as take from "../take.js"
|
|
8
|
-
|
|
9
|
-
/** @internal */
|
|
10
|
-
export interface Pull<out R, out E, out A> extends Effect.Effect<Chunk.Chunk<A>, Option.Option<E>, R> {}
|
|
11
|
-
|
|
12
|
-
/** @internal */
|
|
13
|
-
export const emit = <A>(value: A): Effect.Effect<Chunk.Chunk<A>> => Effect.succeed(Chunk.of(value))
|
|
14
|
-
|
|
15
|
-
/** @internal */
|
|
16
|
-
export const emitChunk = <A>(chunk: Chunk.Chunk<A>): Effect.Effect<Chunk.Chunk<A>> => Effect.succeed(chunk)
|
|
17
|
-
|
|
18
|
-
/** @internal */
|
|
19
|
-
export const empty = <A>(): Effect.Effect<Chunk.Chunk<A>> => Effect.succeed(Chunk.empty<A>())
|
|
20
|
-
|
|
21
|
-
/** @internal */
|
|
22
|
-
export const end = (): Effect.Effect<never, Option.Option<never>> => Effect.fail(Option.none())
|
|
23
|
-
|
|
24
|
-
/** @internal */
|
|
25
|
-
export const fail = <E>(error: E): Effect.Effect<never, Option.Option<E>> => Effect.fail(Option.some(error))
|
|
26
|
-
|
|
27
|
-
/** @internal */
|
|
28
|
-
export const failCause = <E>(cause: Cause.Cause<E>): Effect.Effect<never, Option.Option<E>> =>
|
|
29
|
-
Effect.mapError(Effect.failCause(cause), Option.some)
|
|
30
|
-
|
|
31
|
-
/** @internal */
|
|
32
|
-
export const fromDequeue = <A, E>(
|
|
33
|
-
dequeue: Queue.Dequeue<Take.Take<A, E>>
|
|
34
|
-
): Effect.Effect<Chunk.Chunk<A>, Option.Option<E>> => Effect.flatMap(Queue.take(dequeue), take.done)
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/** @internal */
|
|
2
|
-
export type SinkEndReason = ScheduleEnd | UpstreamEnd
|
|
3
|
-
|
|
4
|
-
/** @internal */
|
|
5
|
-
export const OP_SCHEDULE_END = "ScheduleEnd" as const
|
|
6
|
-
|
|
7
|
-
/** @internal */
|
|
8
|
-
export type OP_SCHEDULE_END = typeof OP_SCHEDULE_END
|
|
9
|
-
|
|
10
|
-
/** @internal */
|
|
11
|
-
export const OP_UPSTREAM_END = "UpstreamEnd" as const
|
|
12
|
-
|
|
13
|
-
/** @internal */
|
|
14
|
-
export type OP_UPSTREAM_END = typeof OP_UPSTREAM_END
|
|
15
|
-
|
|
16
|
-
/** @internal */
|
|
17
|
-
export interface ScheduleEnd {
|
|
18
|
-
readonly _tag: OP_SCHEDULE_END
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/** @internal */
|
|
22
|
-
export interface UpstreamEnd {
|
|
23
|
-
readonly _tag: OP_UPSTREAM_END
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/** @internal */
|
|
27
|
-
export const ScheduleEnd: SinkEndReason = { _tag: OP_SCHEDULE_END }
|
|
28
|
-
|
|
29
|
-
/** @internal */
|
|
30
|
-
export const UpstreamEnd: SinkEndReason = { _tag: OP_UPSTREAM_END }
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import type * as Chunk from "../../Chunk.js"
|
|
2
|
-
|
|
3
|
-
/** @internal */
|
|
4
|
-
export type ZipAllState<A, A2> = DrainLeft | DrainRight | PullBoth | PullLeft<A2> | PullRight<A>
|
|
5
|
-
|
|
6
|
-
/** @internal */
|
|
7
|
-
export const OP_DRAIN_LEFT = "DrainLeft" as const
|
|
8
|
-
|
|
9
|
-
/** @internal */
|
|
10
|
-
export type OP_DRAIN_LEFT = typeof OP_DRAIN_LEFT
|
|
11
|
-
|
|
12
|
-
/** @internal */
|
|
13
|
-
export const OP_DRAIN_RIGHT = "DrainRight" as const
|
|
14
|
-
|
|
15
|
-
/** @internal */
|
|
16
|
-
export type OP_DRAIN_RIGHT = typeof OP_DRAIN_RIGHT
|
|
17
|
-
|
|
18
|
-
/** @internal */
|
|
19
|
-
export const OP_PULL_BOTH = "PullBoth" as const
|
|
20
|
-
|
|
21
|
-
/** @internal */
|
|
22
|
-
export type OP_PULL_BOTH = typeof OP_PULL_BOTH
|
|
23
|
-
|
|
24
|
-
/** @internal */
|
|
25
|
-
export const OP_PULL_LEFT = "PullLeft" as const
|
|
26
|
-
|
|
27
|
-
/** @internal */
|
|
28
|
-
export type OP_PULL_LEFT = typeof OP_PULL_LEFT
|
|
29
|
-
|
|
30
|
-
/** @internal */
|
|
31
|
-
export const OP_PULL_RIGHT = "PullRight" as const
|
|
32
|
-
|
|
33
|
-
/** @internal */
|
|
34
|
-
export type OP_PULL_RIGHT = typeof OP_PULL_RIGHT
|
|
35
|
-
|
|
36
|
-
/** @internal */
|
|
37
|
-
export interface DrainLeft {
|
|
38
|
-
readonly _tag: OP_DRAIN_LEFT
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/** @internal */
|
|
42
|
-
export interface DrainRight {
|
|
43
|
-
readonly _tag: OP_DRAIN_RIGHT
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/** @internal */
|
|
47
|
-
export interface PullBoth {
|
|
48
|
-
readonly _tag: OP_PULL_BOTH
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/** @internal */
|
|
52
|
-
export interface PullLeft<A> {
|
|
53
|
-
readonly _tag: OP_PULL_LEFT
|
|
54
|
-
readonly rightChunk: Chunk.Chunk<A>
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/** @internal */
|
|
58
|
-
export interface PullRight<A> {
|
|
59
|
-
readonly _tag: OP_PULL_RIGHT
|
|
60
|
-
readonly leftChunk: Chunk.Chunk<A>
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/** @internal */
|
|
64
|
-
export const DrainLeft: ZipAllState<never, never> = {
|
|
65
|
-
_tag: OP_DRAIN_LEFT
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/** @internal */
|
|
69
|
-
export const DrainRight: ZipAllState<never, never> = {
|
|
70
|
-
_tag: OP_DRAIN_RIGHT
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/** @internal */
|
|
74
|
-
export const PullBoth: ZipAllState<never, never> = {
|
|
75
|
-
_tag: OP_PULL_BOTH
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/** @internal */
|
|
79
|
-
export const PullLeft = <A>(rightChunk: Chunk.Chunk<A>): ZipAllState<never, A> => ({
|
|
80
|
-
_tag: OP_PULL_LEFT,
|
|
81
|
-
rightChunk
|
|
82
|
-
})
|
|
83
|
-
|
|
84
|
-
/** @internal */
|
|
85
|
-
export const PullRight = <A>(leftChunk: Chunk.Chunk<A>): ZipAllState<A, never> => ({
|
|
86
|
-
_tag: OP_PULL_RIGHT,
|
|
87
|
-
leftChunk
|
|
88
|
-
})
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type * as Chunk from "../../Chunk.js"
|
|
2
|
-
|
|
3
|
-
/** @internal */
|
|
4
|
-
export type ZipChunksState<A, A2> = PullBoth | PullLeft<A2> | PullRight<A>
|
|
5
|
-
|
|
6
|
-
/** @internal */
|
|
7
|
-
export const OP_PULL_BOTH = "PullBoth" as const
|
|
8
|
-
|
|
9
|
-
/** @internal */
|
|
10
|
-
export type OP_PULL_BOTH = typeof OP_PULL_BOTH
|
|
11
|
-
|
|
12
|
-
/** @internal */
|
|
13
|
-
export const OP_PULL_LEFT = "PullLet" as const
|
|
14
|
-
|
|
15
|
-
/** @internal */
|
|
16
|
-
export type OP_PULL_LEFT = typeof OP_PULL_LEFT
|
|
17
|
-
|
|
18
|
-
/** @internal */
|
|
19
|
-
export const OP_PULL_RIGHT = "PullRight" as const
|
|
20
|
-
|
|
21
|
-
/** @internal */
|
|
22
|
-
export type OP_PULL_RIGHT = typeof OP_PULL_RIGHT
|
|
23
|
-
|
|
24
|
-
/** @internal */
|
|
25
|
-
export interface PullBoth {
|
|
26
|
-
readonly _tag: OP_PULL_BOTH
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/** @internal */
|
|
30
|
-
export interface PullLeft<A> {
|
|
31
|
-
readonly _tag: OP_PULL_LEFT
|
|
32
|
-
readonly rightChunk: Chunk.Chunk<A>
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/** @internal */
|
|
36
|
-
export interface PullRight<A> {
|
|
37
|
-
readonly _tag: OP_PULL_RIGHT
|
|
38
|
-
readonly leftChunk: Chunk.Chunk<A>
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/** @internal */
|
|
42
|
-
export const PullBoth: ZipChunksState<never, never> = {
|
|
43
|
-
_tag: OP_PULL_BOTH
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/** @internal */
|
|
47
|
-
export const PullLeft = <A>(rightChunk: Chunk.Chunk<A>): ZipChunksState<never, A> => ({
|
|
48
|
-
_tag: OP_PULL_LEFT,
|
|
49
|
-
rightChunk
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
/** @internal */
|
|
53
|
-
export const PullRight = <A>(leftChunk: Chunk.Chunk<A>): ZipChunksState<A, never> => ({
|
|
54
|
-
_tag: OP_PULL_RIGHT,
|
|
55
|
-
leftChunk
|
|
56
|
-
})
|