morphir-elm
Version:
Elm bindings for Morphir
797 lines (796 loc) • 32.3 kB
JavaScript
"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 = {};