UNPKG

@aeternity/aepp-calldata

Version:
60 lines (59 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _FateData = _interopRequireDefault(require("./FateData.cjs")); var _FateTypes = require("../FateTypes.cjs"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class FateVariant extends _FateData.default { constructor(arities, tag, value = [], valueTypes = [], variants = []) { super('variant'); this.arities = Array.from(arities); this._tag = tag; this._value = value; this._valueTypes = valueTypes; this._type = (0, _FateTypes.FateTypeVariant)(variants); } get valueTypes() { return this._valueTypes; } get type() { return this._type; } get tag() { return this._tag; } get value() { return this._value; } get aritiesType() { return (0, _FateTypes.FateTypeInt)(); } get variantType() { return (0, _FateTypes.FateTypeTuple)(this._valueTypes); } get variants() { return this._type.variants; } get variantName() { if (this.variants.length === 0) { return this.tag; } const variant = this.variants[this.tag]; return Object.keys(variant)[0]; } valueOf() { if (this.variants.length === 0) { return this; } const value = this._value.map(e => e.valueOf()); return { [this.variantName]: value }; } accept(visitor) { return visitor.visitVariant(this); } } var _default = exports.default = FateVariant;