"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sequential = exports.parallelN = exports.parallel = exports.match = exports.isSequential = exports.isParallelN = exports.isParallel = exports.OP_SEQUENTIAL = exports.OP_PARALLEL_N = exports.OP_PARALLEL = void 0; var _Function = require("../Function.js"); /** @internal */ const OP_SEQUENTIAL = exports.OP_SEQUENTIAL = "Sequential"; /** @internal */ const OP_PARALLEL = exports.OP_PARALLEL = "Parallel"; /** @internal */ const OP_PARALLEL_N = exports.OP_PARALLEL_N = "ParallelN"; /** @internal */ const sequential = exports.sequential = { _tag: OP_SEQUENTIAL }; /** @internal */ const parallel = exports.parallel = { _tag: OP_PARALLEL }; /** @internal */ const parallelN = parallelism => ({ _tag: OP_PARALLEL_N, parallelism }); /** @internal */ exports.parallelN = parallelN; const isSequential = self => self._tag === OP_SEQUENTIAL; /** @internal */ exports.isSequential = isSequential; const isParallel = self => self._tag === OP_PARALLEL; /** @internal */ exports.isParallel = isParallel; const isParallelN = self => self._tag === OP_PARALLEL_N; /** @internal */ exports.isParallelN = isParallelN; const match = exports.match = /*#__PURE__*/(0, _Function.dual)(2, (self, options) => { switch (self._tag) { case OP_SEQUENTIAL: { return options.onSequential(); } case OP_PARALLEL: { return options.onParallel(); } case OP_PARALLEL_N: { return options.onParallelN(self.parallelism); } } }); //# sourceMappingURL=executionStrategy.js.map