UNPKG

morphir-elm

Version:
797 lines (796 loc) 32.3 kB
"use strict"; // Generated by Morphir var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.decodeFieldFunction = exports.FieldFunction = exports.encodeField = exports.decodeField = exports.Field = exports.encodeDestructure = exports.decodeDestructure = exports.Destructure = exports.encodeConstructor = exports.decodeConstructor = exports.Constructor = exports.encodeApply = exports.decodeApply = exports.Apply = exports.encodeValue = exports.decodeValue = exports.encodeTypedValue = exports.decodeTypedValue = exports.encodeSpecification = exports.decodeSpecification = exports.encodeRawValue = exports.decodeRawValue = exports.encodeWildcardPattern = exports.decodeWildcardPattern = exports.WildcardPattern = exports.encodeUnitPattern = exports.decodeUnitPattern = exports.UnitPattern = exports.encodeTuplePattern = exports.decodeTuplePattern = exports.TuplePattern = exports.encodeLiteralPattern = exports.decodeLiteralPattern = exports.LiteralPattern = exports.encodeHeadTailPattern = exports.decodeHeadTailPattern = exports.HeadTailPattern = exports.encodeEmptyListPattern = exports.decodeEmptyListPattern = exports.EmptyListPattern = exports.encodeConstructorPattern = exports.decodeConstructorPattern = exports.ConstructorPattern = exports.encodeAsPattern = exports.decodeAsPattern = exports.AsPattern = exports.encodePattern = exports.decodePattern = exports.encodeDefinition = exports.decodeDefinition = void 0; exports.encodeVariable = exports.decodeVariable = exports.Variable = exports.encodeUpdateRecord = exports.decodeUpdateRecord = exports.UpdateRecord = exports.encodeUnit = exports.decodeUnit = exports.Unit = exports.encodeTuple = exports.decodeTuple = exports.Tuple = exports.encodeReference = exports.decodeReference = exports.Reference = exports.encodeRecord = exports.decodeRecord = exports.Record = exports.encodePatternMatch = exports.decodePatternMatch = exports.PatternMatch = exports.encodeLiteral = exports.decodeLiteral = exports.Literal = exports.encodeList = exports.decodeList = exports.List = exports.encodeLetRecursion = exports.decodeLetRecursion = exports.LetRecursion = exports.encodeLetDefinition = exports.decodeLetDefinition = exports.LetDefinition = exports.encodeLambda = exports.decodeLambda = exports.Lambda = exports.encodeIfThenElse = exports.decodeIfThenElse = exports.IfThenElse = exports.encodeFieldFunction = void 0; const codecs = __importStar(require("./../../morphir/internal/codecs")); const Morphir_IR_FQName = __importStar(require("./../../morphir/ir/fq-name")); const Morphir_IR_Literal = __importStar(require("./../../morphir/ir/literal")); const Morphir_IR_Name = __importStar(require("./../../morphir/ir/name")); const Morphir_IR_Type = __importStar(require("./../../morphir/ir/type")); function decodeDefinition(decodeTa, decodeVa, input) { return codecs.decodeRecord(codecs.buildCodecMap([ [ "inputTypes", codecs.decodeList.bind(null, codecs.decodeTuple.bind(null, [ Morphir_IR_Name.decodeName, decodeVa, Morphir_IR_Type.decodeType.bind(null, decodeTa), ])), ], ["outputType", Morphir_IR_Type.decodeType.bind(null, decodeTa)], ["body", decodeValue.bind(null, decodeTa, decodeVa)], ]), input); } exports.decodeDefinition = decodeDefinition; function encodeDefinition(encodeTa, encodeVa, value) { return codecs.encodeRecord(codecs.buildCodecMap([ [ "inputTypes", codecs.encodeList.bind(null, codecs.encodeTuple.bind(null, [ Morphir_IR_Name.encodeName, encodeVa, Morphir_IR_Type.encodeType.bind(null, encodeTa), ])), ], ["outputType", Morphir_IR_Type.encodeType.bind(null, encodeTa)], ["body", encodeValue.bind(null, encodeTa, encodeVa)], ]), value); } exports.encodeDefinition = encodeDefinition; function decodePattern(decodeA, input) { const kind = codecs.parseKindFromCustomTypeInput(input); switch (kind) { case "AsPattern": return decodeAsPattern(decodeA, input); case "ConstructorPattern": return decodeConstructorPattern(decodeA, input); case "EmptyListPattern": return decodeEmptyListPattern(decodeA, input); case "HeadTailPattern": return decodeHeadTailPattern(decodeA, input); case "LiteralPattern": return decodeLiteralPattern(decodeA, input); case "TuplePattern": return decodeTuplePattern(decodeA, input); case "UnitPattern": return decodeUnitPattern(decodeA, input); case "WildcardPattern": return decodeWildcardPattern(decodeA, input); } codecs.raiseDecodeErrorFromCustomType("Pattern", kind); } exports.decodePattern = decodePattern; function encodePattern(encodeA, value) { switch (value.kind) { case "AsPattern": return encodeAsPattern(encodeA, value); case "ConstructorPattern": return encodeConstructorPattern(encodeA, value); case "EmptyListPattern": return encodeEmptyListPattern(encodeA, value); case "HeadTailPattern": return encodeHeadTailPattern(encodeA, value); case "LiteralPattern": return encodeLiteralPattern(encodeA, value); case "TuplePattern": return encodeTuplePattern(encodeA, value); case "UnitPattern": return encodeUnitPattern(encodeA, value); case "WildcardPattern": return encodeWildcardPattern(encodeA, value); } } exports.encodePattern = encodePattern; class AsPattern { constructor(attrs, pattern, name) { this.attrs = attrs; this.pattern = pattern; this.name = name; this.kind = "AsPattern"; } } exports.AsPattern = AsPattern; function decodeAsPattern(decodeA, input) { codecs.preprocessCustomTypeVariant("AsPattern", 3, input); return new AsPattern(decodeA(input[1]), decodePattern(decodeA, input[2]), Morphir_IR_Name.decodeName(input[3])); } exports.decodeAsPattern = decodeAsPattern; function encodeAsPattern(encodeA, value) { return [ value.kind, encodeA(value.attrs), encodePattern(encodeA, value.pattern), Morphir_IR_Name.encodeName(value.name), ]; } exports.encodeAsPattern = encodeAsPattern; class ConstructorPattern { constructor(attrs, constructorName, argumentPatterns) { this.attrs = attrs; this.constructorName = constructorName; this.argumentPatterns = argumentPatterns; this.kind = "ConstructorPattern"; } } exports.ConstructorPattern = ConstructorPattern; function decodeConstructorPattern(decodeA, input) { codecs.preprocessCustomTypeVariant("ConstructorPattern", 3, input); return new ConstructorPattern(decodeA(input[1]), Morphir_IR_FQName.decodeFQName(input[2]), codecs.decodeList(decodePattern.bind(null, decodeA), input[3])); } exports.decodeConstructorPattern = decodeConstructorPattern; function encodeConstructorPattern(encodeA, value) { return [ value.kind, encodeA(value.attrs), Morphir_IR_FQName.encodeFQName(value.constructorName), codecs.encodeList(encodePattern.bind(null, encodeA), value.argumentPatterns), ]; } exports.encodeConstructorPattern = encodeConstructorPattern; class EmptyListPattern { constructor(attrs) { this.attrs = attrs; this.kind = "EmptyListPattern"; } } exports.EmptyListPattern = EmptyListPattern; function decodeEmptyListPattern(decodeA, input) { codecs.preprocessCustomTypeVariant("EmptyListPattern", 1, input); return new EmptyListPattern(decodeA(input[1])); } exports.decodeEmptyListPattern = decodeEmptyListPattern; function encodeEmptyListPattern(encodeA, value) { return [value.kind, encodeA(value.attrs)]; } exports.encodeEmptyListPattern = encodeEmptyListPattern; class HeadTailPattern { constructor(attrs, headPattern, tailPattern) { this.attrs = attrs; this.headPattern = headPattern; this.tailPattern = tailPattern; this.kind = "HeadTailPattern"; } } exports.HeadTailPattern = HeadTailPattern; function decodeHeadTailPattern(decodeA, input) { codecs.preprocessCustomTypeVariant("HeadTailPattern", 3, input); return new HeadTailPattern(decodeA(input[1]), decodePattern(decodeA, input[2]), decodePattern(decodeA, input[3])); } exports.decodeHeadTailPattern = decodeHeadTailPattern; function encodeHeadTailPattern(encodeA, value) { return [ value.kind, encodeA(value.attrs), encodePattern(encodeA, value.headPattern), encodePattern(encodeA, value.tailPattern), ]; } exports.encodeHeadTailPattern = encodeHeadTailPattern; class LiteralPattern { constructor(attrs, value) { this.attrs = attrs; this.value = value; this.kind = "LiteralPattern"; } } exports.LiteralPattern = LiteralPattern; function decodeLiteralPattern(decodeA, input) { codecs.preprocessCustomTypeVariant("LiteralPattern", 2, input); return new LiteralPattern(decodeA(input[1]), Morphir_IR_Literal.decodeLiteral(input[2])); } exports.decodeLiteralPattern = decodeLiteralPattern; function encodeLiteralPattern(encodeA, value) { return [ value.kind, encodeA(value.attrs), Morphir_IR_Literal.encodeLiteral(value.value), ]; } exports.encodeLiteralPattern = encodeLiteralPattern; class TuplePattern { constructor(attrs, elementPatterns) { this.attrs = attrs; this.elementPatterns = elementPatterns; this.kind = "TuplePattern"; } } exports.TuplePattern = TuplePattern; function decodeTuplePattern(decodeA, input) { codecs.preprocessCustomTypeVariant("TuplePattern", 2, input); return new TuplePattern(decodeA(input[1]), codecs.decodeList(decodePattern.bind(null, decodeA), input[2])); } exports.decodeTuplePattern = decodeTuplePattern; function encodeTuplePattern(encodeA, value) { return [ value.kind, encodeA(value.attrs), codecs.encodeList(encodePattern.bind(null, encodeA), value.elementPatterns), ]; } exports.encodeTuplePattern = encodeTuplePattern; class UnitPattern { constructor(attrs) { this.attrs = attrs; this.kind = "UnitPattern"; } } exports.UnitPattern = UnitPattern; function decodeUnitPattern(decodeA, input) { codecs.preprocessCustomTypeVariant("UnitPattern", 1, input); return new UnitPattern(decodeA(input[1])); } exports.decodeUnitPattern = decodeUnitPattern; function encodeUnitPattern(encodeA, value) { return [value.kind, encodeA(value.attrs)]; } exports.encodeUnitPattern = encodeUnitPattern; class WildcardPattern { constructor(attrs) { this.attrs = attrs; this.kind = "WildcardPattern"; } } exports.WildcardPattern = WildcardPattern; function decodeWildcardPattern(decodeA, input) { codecs.preprocessCustomTypeVariant("WildcardPattern", 1, input); return new WildcardPattern(decodeA(input[1])); } exports.decodeWildcardPattern = decodeWildcardPattern; function encodeWildcardPattern(encodeA, value) { return [value.kind, encodeA(value.attrs)]; } exports.encodeWildcardPattern = encodeWildcardPattern; function decodeRawValue(input) { return decodeValue(codecs.decodeUnit, codecs.decodeUnit, input); } exports.decodeRawValue = decodeRawValue; function encodeRawValue(value) { return encodeValue(codecs.encodeUnit, codecs.encodeUnit, value); } exports.encodeRawValue = encodeRawValue; function decodeSpecification(decodeTa, input) { return codecs.decodeRecord(codecs.buildCodecMap([ [ "inputs", codecs.decodeList.bind(null, codecs.decodeTuple.bind(null, [ Morphir_IR_Name.decodeName, Morphir_IR_Type.decodeType.bind(null, decodeTa), ])), ], ["output", Morphir_IR_Type.decodeType.bind(null, decodeTa)], ]), input); } exports.decodeSpecification = decodeSpecification; function encodeSpecification(encodeTa, value) { return codecs.encodeRecord(codecs.buildCodecMap([ [ "inputs", codecs.encodeList.bind(null, codecs.encodeTuple.bind(null, [ Morphir_IR_Name.encodeName, Morphir_IR_Type.encodeType.bind(null, encodeTa), ])), ], ["output", Morphir_IR_Type.encodeType.bind(null, encodeTa)], ]), value); } exports.encodeSpecification = encodeSpecification; function decodeTypedValue(input) { return decodeValue(codecs.decodeUnit, Morphir_IR_Type.decodeType.bind(null, codecs.decodeUnit), input); } exports.decodeTypedValue = decodeTypedValue; function encodeTypedValue(value) { return encodeValue(codecs.encodeUnit, Morphir_IR_Type.encodeType.bind(null, codecs.encodeUnit), value); } exports.encodeTypedValue = encodeTypedValue; function decodeValue(decodeTa, decodeVa, input) { const kind = codecs.parseKindFromCustomTypeInput(input); switch (kind) { case "Apply": return decodeApply(decodeVa, decodeTa, input); case "Constructor": return decodeConstructor(decodeVa, input); case "Destructure": return decodeDestructure(decodeVa, decodeTa, input); case "Field": return decodeField(decodeVa, decodeTa, input); case "FieldFunction": return decodeFieldFunction(decodeVa, input); case "IfThenElse": return decodeIfThenElse(decodeVa, decodeTa, input); case "Lambda": return decodeLambda(decodeVa, decodeTa, input); case "LetDefinition": return decodeLetDefinition(decodeVa, decodeTa, input); case "LetRecursion": return decodeLetRecursion(decodeVa, decodeTa, input); case "List": return decodeList(decodeVa, decodeTa, input); case "Literal": return decodeLiteral(decodeVa, input); case "PatternMatch": return decodePatternMatch(decodeVa, decodeTa, input); case "Record": return decodeRecord(decodeVa, decodeTa, input); case "Reference": return decodeReference(decodeVa, input); case "Tuple": return decodeTuple(decodeVa, decodeTa, input); case "Unit": return decodeUnit(decodeVa, input); case "UpdateRecord": return decodeUpdateRecord(decodeVa, decodeTa, input); case "Variable": return decodeVariable(decodeVa, input); } codecs.raiseDecodeErrorFromCustomType("Value", kind); } exports.decodeValue = decodeValue; function encodeValue(encodeTa, encodeVa, value) { switch (value.kind) { case "Apply": return encodeApply(encodeVa, encodeTa, value); case "Constructor": return encodeConstructor(encodeVa, value); case "Destructure": return encodeDestructure(encodeVa, encodeTa, value); case "Field": return encodeField(encodeVa, encodeTa, value); case "FieldFunction": return encodeFieldFunction(encodeVa, value); case "IfThenElse": return encodeIfThenElse(encodeVa, encodeTa, value); case "Lambda": return encodeLambda(encodeVa, encodeTa, value); case "LetDefinition": return encodeLetDefinition(encodeVa, encodeTa, value); case "LetRecursion": return encodeLetRecursion(encodeVa, encodeTa, value); case "List": return encodeList(encodeVa, encodeTa, value); case "Literal": return encodeLiteral(encodeVa, value); case "PatternMatch": return encodePatternMatch(encodeVa, encodeTa, value); case "Record": return encodeRecord(encodeVa, encodeTa, value); case "Reference": return encodeReference(encodeVa, value); case "Tuple": return encodeTuple(encodeVa, encodeTa, value); case "Unit": return encodeUnit(encodeVa, value); case "UpdateRecord": return encodeUpdateRecord(encodeVa, encodeTa, value); case "Variable": return encodeVariable(encodeVa, value); } } exports.encodeValue = encodeValue; class Apply { constructor(attrs, func, argument) { this.attrs = attrs; this.func = func; this.argument = argument; this.kind = "Apply"; } } exports.Apply = Apply; function decodeApply(decodeVa, decodeTa, input) { codecs.preprocessCustomTypeVariant("Apply", 3, input); return new Apply(decodeVa(input[1]), decodeValue(decodeTa, decodeVa, input[2]), decodeValue(decodeTa, decodeVa, input[3])); } exports.decodeApply = decodeApply; function encodeApply(encodeVa, encodeTa, value) { return [ value.kind, encodeVa(value.attrs), encodeValue(encodeTa, encodeVa, value.func), encodeValue(encodeTa, encodeVa, value.argument), ]; } exports.encodeApply = encodeApply; class Constructor { constructor(attrs, fullyQualifiedName) { this.attrs = attrs; this.fullyQualifiedName = fullyQualifiedName; this.kind = "Constructor"; } } exports.Constructor = Constructor; function decodeConstructor(decodeVa, input) { codecs.preprocessCustomTypeVariant("Constructor", 2, input); return new Constructor(decodeVa(input[1]), Morphir_IR_FQName.decodeFQName(input[2])); } exports.decodeConstructor = decodeConstructor; function encodeConstructor(encodeVa, value) { return [ value.kind, encodeVa(value.attrs), Morphir_IR_FQName.encodeFQName(value.fullyQualifiedName), ]; } exports.encodeConstructor = encodeConstructor; class Destructure { constructor(attrs, pattern, valueToDestruct, inValue) { this.attrs = attrs; this.pattern = pattern; this.valueToDestruct = valueToDestruct; this.inValue = inValue; this.kind = "Destructure"; } } exports.Destructure = Destructure; function decodeDestructure(decodeVa, decodeTa, input) { codecs.preprocessCustomTypeVariant("Destructure", 4, input); return new Destructure(decodeVa(input[1]), decodePattern(decodeVa, input[2]), decodeValue(decodeTa, decodeVa, input[3]), decodeValue(decodeTa, decodeVa, input[4])); } exports.decodeDestructure = decodeDestructure; function encodeDestructure(encodeVa, encodeTa, value) { return [ value.kind, encodeVa(value.attrs), encodePattern(encodeVa, value.pattern), encodeValue(encodeTa, encodeVa, value.valueToDestruct), encodeValue(encodeTa, encodeVa, value.inValue), ]; } exports.encodeDestructure = encodeDestructure; class Field { constructor(attrs, subjectValue, fieldName) { this.attrs = attrs; this.subjectValue = subjectValue; this.fieldName = fieldName; this.kind = "Field"; } } exports.Field = Field; function decodeField(decodeVa, decodeTa, input) { codecs.preprocessCustomTypeVariant("Field", 3, input); return new Field(decodeVa(input[1]), decodeValue(decodeTa, decodeVa, input[2]), Morphir_IR_Name.decodeName(input[3])); } exports.decodeField = decodeField; function encodeField(encodeVa, encodeTa, value) { return [ value.kind, encodeVa(value.attrs), encodeValue(encodeTa, encodeVa, value.subjectValue), Morphir_IR_Name.encodeName(value.fieldName), ]; } exports.encodeField = encodeField; class FieldFunction { constructor(attrs, fieldName) { this.attrs = attrs; this.fieldName = fieldName; this.kind = "FieldFunction"; } } exports.FieldFunction = FieldFunction; function decodeFieldFunction(decodeVa, input) { codecs.preprocessCustomTypeVariant("FieldFunction", 2, input); return new FieldFunction(decodeVa(input[1]), Morphir_IR_Name.decodeName(input[2])); } exports.decodeFieldFunction = decodeFieldFunction; function encodeFieldFunction(encodeVa, value) { return [ value.kind, encodeVa(value.attrs), Morphir_IR_Name.encodeName(value.fieldName), ]; } exports.encodeFieldFunction = encodeFieldFunction; class IfThenElse { constructor(attrs, condition, thenBranch, elseBranch) { this.attrs = attrs; this.condition = condition; this.thenBranch = thenBranch; this.elseBranch = elseBranch; this.kind = "IfThenElse"; } } exports.IfThenElse = IfThenElse; function decodeIfThenElse(decodeVa, decodeTa, input) { codecs.preprocessCustomTypeVariant("IfThenElse", 4, input); return new IfThenElse(decodeVa(input[1]), decodeValue(decodeTa, decodeVa, input[2]), decodeValue(decodeTa, decodeVa, input[3]), decodeValue(decodeTa, decodeVa, input[4])); } exports.decodeIfThenElse = decodeIfThenElse; function encodeIfThenElse(encodeVa, encodeTa, value) { return [ value.kind, encodeVa(value.attrs), encodeValue(encodeTa, encodeVa, value.condition), encodeValue(encodeTa, encodeVa, value.thenBranch), encodeValue(encodeTa, encodeVa, value.elseBranch), ]; } exports.encodeIfThenElse = encodeIfThenElse; class Lambda { constructor(attrs, argumentPattern, body) { this.attrs = attrs; this.argumentPattern = argumentPattern; this.body = body; this.kind = "Lambda"; } } exports.Lambda = Lambda; function decodeLambda(decodeVa, decodeTa, input) { codecs.preprocessCustomTypeVariant("Lambda", 3, input); return new Lambda(decodeVa(input[1]), decodePattern(decodeVa, input[2]), decodeValue(decodeTa, decodeVa, input[3])); } exports.decodeLambda = decodeLambda; function encodeLambda(encodeVa, encodeTa, value) { return [ value.kind, encodeVa(value.attrs), encodePattern(encodeVa, value.argumentPattern), encodeValue(encodeTa, encodeVa, value.body), ]; } exports.encodeLambda = encodeLambda; class LetDefinition { constructor(attrs, valueName, valueDefinition, inValue) { this.attrs = attrs; this.valueName = valueName; this.valueDefinition = valueDefinition; this.inValue = inValue; this.kind = "LetDefinition"; } } exports.LetDefinition = LetDefinition; function decodeLetDefinition(decodeVa, decodeTa, input) { codecs.preprocessCustomTypeVariant("LetDefinition", 4, input); return new LetDefinition(decodeVa(input[1]), Morphir_IR_Name.decodeName(input[2]), decodeDefinition(decodeTa, decodeVa, input[3]), decodeValue(decodeTa, decodeVa, input[4])); } exports.decodeLetDefinition = decodeLetDefinition; function encodeLetDefinition(encodeVa, encodeTa, value) { return [ value.kind, encodeVa(value.attrs), Morphir_IR_Name.encodeName(value.valueName), encodeDefinition(encodeTa, encodeVa, value.valueDefinition), encodeValue(encodeTa, encodeVa, value.inValue), ]; } exports.encodeLetDefinition = encodeLetDefinition; class LetRecursion { constructor(attrs, valueDefinitions, inValue) { this.attrs = attrs; this.valueDefinitions = valueDefinitions; this.inValue = inValue; this.kind = "LetRecursion"; } } exports.LetRecursion = LetRecursion; function decodeLetRecursion(decodeVa, decodeTa, input) { codecs.preprocessCustomTypeVariant("LetRecursion", 3, input); return new LetRecursion(decodeVa(input[1]), codecs.decodeDict(Morphir_IR_Name.decodeName, decodeDefinition.bind(null, decodeTa, decodeVa), input[2]), decodeValue(decodeTa, decodeVa, input[3])); } exports.decodeLetRecursion = decodeLetRecursion; function encodeLetRecursion(encodeVa, encodeTa, value) { return [ value.kind, encodeVa(value.attrs), codecs.encodeDict(Morphir_IR_Name.encodeName, encodeDefinition.bind(null, encodeTa, encodeVa), value.valueDefinitions), encodeValue(encodeTa, encodeVa, value.inValue), ]; } exports.encodeLetRecursion = encodeLetRecursion; class List { constructor(attrs, items) { this.attrs = attrs; this.items = items; this.kind = "List"; } } exports.List = List; function decodeList(decodeVa, decodeTa, input) { codecs.preprocessCustomTypeVariant("List", 2, input); return new List(decodeVa(input[1]), codecs.decodeList(decodeValue.bind(null, decodeTa, decodeVa), input[2])); } exports.decodeList = decodeList; function encodeList(encodeVa, encodeTa, value) { return [ value.kind, encodeVa(value.attrs), codecs.encodeList(encodeValue.bind(null, encodeTa, encodeVa), value.items), ]; } exports.encodeList = encodeList; class Literal { constructor(attrs, value) { this.attrs = attrs; this.value = value; this.kind = "Literal"; } } exports.Literal = Literal; function decodeLiteral(decodeVa, input) { codecs.preprocessCustomTypeVariant("Literal", 2, input); return new Literal(decodeVa(input[1]), Morphir_IR_Literal.decodeLiteral(input[2])); } exports.decodeLiteral = decodeLiteral; function encodeLiteral(encodeVa, value) { return [ value.kind, encodeVa(value.attrs), Morphir_IR_Literal.encodeLiteral(value.value), ]; } exports.encodeLiteral = encodeLiteral; class PatternMatch { constructor(attrs, branchOutOn, cases) { this.attrs = attrs; this.branchOutOn = branchOutOn; this.cases = cases; this.kind = "PatternMatch"; } } exports.PatternMatch = PatternMatch; function decodePatternMatch(decodeVa, decodeTa, input) { codecs.preprocessCustomTypeVariant("PatternMatch", 3, input); return new PatternMatch(decodeVa(input[1]), decodeValue(decodeTa, decodeVa, input[2]), codecs.decodeList(codecs.decodeTuple.bind(null, [ decodePattern.bind(null, decodeVa), decodeValue.bind(null, decodeTa, decodeVa), ]), input[3])); } exports.decodePatternMatch = decodePatternMatch; function encodePatternMatch(encodeVa, encodeTa, value) { return [ value.kind, encodeVa(value.attrs), encodeValue(encodeTa, encodeVa, value.branchOutOn), codecs.encodeList(codecs.encodeTuple.bind(null, [ encodePattern.bind(null, encodeVa), encodeValue.bind(null, encodeTa, encodeVa), ]), value.cases), ]; } exports.encodePatternMatch = encodePatternMatch; class Record { constructor(attrs, fields) { this.attrs = attrs; this.fields = fields; this.kind = "Record"; } } exports.Record = Record; function decodeRecord(decodeVa, decodeTa, input) { codecs.preprocessCustomTypeVariant("Record", 2, input); return new Record(decodeVa(input[1]), codecs.decodeDict(Morphir_IR_Name.decodeName, decodeValue.bind(null, decodeTa, decodeVa), input[2])); } exports.decodeRecord = decodeRecord; function encodeRecord(encodeVa, encodeTa, value) { return [ value.kind, encodeVa(value.attrs), codecs.encodeDict(Morphir_IR_Name.encodeName, encodeValue.bind(null, encodeTa, encodeVa), value.fields), ]; } exports.encodeRecord = encodeRecord; class Reference { constructor(attrs, fullyQualifiedName) { this.attrs = attrs; this.fullyQualifiedName = fullyQualifiedName; this.kind = "Reference"; } } exports.Reference = Reference; function decodeReference(decodeVa, input) { codecs.preprocessCustomTypeVariant("Reference", 2, input); return new Reference(decodeVa(input[1]), Morphir_IR_FQName.decodeFQName(input[2])); } exports.decodeReference = decodeReference; function encodeReference(encodeVa, value) { return [ value.kind, encodeVa(value.attrs), Morphir_IR_FQName.encodeFQName(value.fullyQualifiedName), ]; } exports.encodeReference = encodeReference; class Tuple { constructor(attrs, elements) { this.attrs = attrs; this.elements = elements; this.kind = "Tuple"; } } exports.Tuple = Tuple; function decodeTuple(decodeVa, decodeTa, input) { codecs.preprocessCustomTypeVariant("Tuple", 2, input); return new Tuple(decodeVa(input[1]), codecs.decodeList(decodeValue.bind(null, decodeTa, decodeVa), input[2])); } exports.decodeTuple = decodeTuple; function encodeTuple(encodeVa, encodeTa, value) { return [ value.kind, encodeVa(value.attrs), codecs.encodeList(encodeValue.bind(null, encodeTa, encodeVa), value.elements), ]; } exports.encodeTuple = encodeTuple; class Unit { constructor(attrs) { this.attrs = attrs; this.kind = "Unit"; } } exports.Unit = Unit; function decodeUnit(decodeVa, input) { codecs.preprocessCustomTypeVariant("Unit", 1, input); return new Unit(decodeVa(input[1])); } exports.decodeUnit = decodeUnit; function encodeUnit(encodeVa, value) { return [value.kind, encodeVa(value.attrs)]; } exports.encodeUnit = encodeUnit; class UpdateRecord { constructor(attrs, valueToUpdate, fieldsToUpdate) { this.attrs = attrs; this.valueToUpdate = valueToUpdate; this.fieldsToUpdate = fieldsToUpdate; this.kind = "UpdateRecord"; } } exports.UpdateRecord = UpdateRecord; function decodeUpdateRecord(decodeVa, decodeTa, input) { codecs.preprocessCustomTypeVariant("UpdateRecord", 3, input); return new UpdateRecord(decodeVa(input[1]), decodeValue(decodeTa, decodeVa, input[2]), codecs.decodeDict(Morphir_IR_Name.decodeName, decodeValue.bind(null, decodeTa, decodeVa), input[3])); } exports.decodeUpdateRecord = decodeUpdateRecord; function encodeUpdateRecord(encodeVa, encodeTa, value) { return [ value.kind, encodeVa(value.attrs), encodeValue(encodeTa, encodeVa, value.valueToUpdate), codecs.encodeDict(Morphir_IR_Name.encodeName, encodeValue.bind(null, encodeTa, encodeVa), value.fieldsToUpdate), ]; } exports.encodeUpdateRecord = encodeUpdateRecord; class Variable { constructor(attrs, name) { this.attrs = attrs; this.name = name; this.kind = "Variable"; } } exports.Variable = Variable; function decodeVariable(decodeVa, input) { codecs.preprocessCustomTypeVariant("Variable", 2, input); return new Variable(decodeVa(input[1]), Morphir_IR_Name.decodeName(input[2])); } exports.decodeVariable = decodeVariable; function encodeVariable(encodeVa, value) { return [ value.kind, encodeVa(value.attrs), Morphir_IR_Name.encodeName(value.name), ]; } exports.encodeVariable = encodeVariable; exports.default = {};