"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.Pending = exports.Done = exports.DeferredState = void 0;
exports.done = done;
exports.pending = pending;
const DeferredState = {};
exports.DeferredState = DeferredState;

class Pending {
  constructor(joiners) {
    this.joiners = joiners;
    this._tag = "Pending";
  }

}

exports.Pending = Pending;

class Done {
  constructor(value) {
    this.value = value;
    this._tag = "Done";
  }

}
/**
 * @tsplus static ets/Deferred/State/Ops pending
 */


exports.Done = Done;

function pending(joiners) {
  return new Pending(joiners);
}
/**
 * @tsplus static ets/Deferred/State/Ops done
 */


function done(value) {
  return new Done(value);
}
//# sourceMappingURL=DeferredState.js.map