veffect
Version:
powerful TypeScript validation library built on the robust foundation of Effect combining exceptional type safety, high performance, and developer experience. Taking inspiration from Effect's functional principles, VEffect delivers a balanced approach tha
48 lines • 1.24 kB
JavaScript
import * as Exit from "../../Exit.js";
import * as OpCodes from "../opCodes/continuation.js";
/** @internal */
export const ContinuationTypeId = /*#__PURE__*/Symbol.for("effect/ChannelContinuation");
const continuationVariance = {
/* c8 ignore next */
_Env: _ => _,
/* c8 ignore next */
_InErr: _ => _,
/* c8 ignore next */
_InElem: _ => _,
/* c8 ignore next */
_InDone: _ => _,
/* c8 ignore next */
_OutErr: _ => _,
/* c8 ignore next */
_OutDone: _ => _,
/* c8 ignore next */
_OutErr2: _ => _,
/* c8 ignore next */
_OutElem: _ => _,
/* c8 ignore next */
_OutDone2: _ => _
};
/** @internal */
export class ContinuationKImpl {
onSuccess;
onHalt;
_tag = OpCodes.OP_CONTINUATION_K;
[ContinuationTypeId] = continuationVariance;
constructor(onSuccess, onHalt) {
this.onSuccess = onSuccess;
this.onHalt = onHalt;
}
onExit(exit) {
return Exit.isFailure(exit) ? this.onHalt(exit.cause) : this.onSuccess(exit.value);
}
}
/** @internal */
export class ContinuationFinalizerImpl {
finalizer;
_tag = OpCodes.OP_CONTINUATION_FINALIZER;
[ContinuationTypeId] = continuationVariance;
constructor(finalizer) {
this.finalizer = finalizer;
}
}
//# sourceMappingURL=continuation.js.map