"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getOrElse = void 0;
exports.getOrElse_ = getOrElse_;

/**
 * Retrieves the `A` if succeeded, or else returns the specified default `A`.
 *
 * @tsplus fluent ets/Exit getOrElse
 */
function getOrElse_(self, orElse) {
  switch (self._tag) {
    case "Failure":
      return orElse(self.cause);

    case "Success":
      return self.value;
  }
}
/**
 * Retrieves the `A` if succeeded, or else returns the specified default `A`.
 *
 * @tsplus static ets/Exit/Aspects getOrElse
 */


const getOrElse = orElse => self => getOrElse_(self, orElse);

exports.getOrElse = getOrElse;
//# sourceMappingURL=getOrElse.js.map