UNPKG

fable-compiler

Version:
359 lines (314 loc) 8.85 kB
import { declare, FSharpRef } from "./Types.js"; import { iterateIndexed, toIterator, getEnumerator, delay, collect, map, sumBy, iterate } from "./Seq.js"; import { type } from "./Reflection.js"; import { equals, getItemFromDict, tryGetValue } from "./Util.js"; import { toText, printf } from "./String.js"; export const MutableMap$00602 = declare(function Fable_Collections_MutableMap(pairs, comparer) { const $this$$1 = this; const this$ = new FSharpRef(null); $this$$1.comparer = comparer; this$.contents = $this$$1; $this$$1["entries@23"] = new Map([]); $this$$1["init@20-1"] = 1; iterate(function (pair) { MutableMap$00602$$Add$$5BDDA1(this$.contents, pair[0], pair[1]); }, pairs); }); export function MutableMap$00602$reflection($gen$$4, $gen$$5) { return type("Fable.Collections.MutableMap`2", [$gen$$4, $gen$$5]); } export function MutableMap$00602$$$$002Ector$$6623D9B3(pairs, comparer) { return this instanceof MutableMap$00602 ? MutableMap$00602.call(this, pairs, comparer) : new MutableMap$00602(pairs, comparer); } function MutableMap$00602$$TryFindIndex$$2B595(this$$$1, k) { const h = this$$$1.comparer.GetHashCode(k) | 0; const matchValue = tryGetValue(this$$$1["entries@23"], h, null); if (matchValue[0]) { return [true, h, matchValue[1].findIndex(function (pair$$1) { return this$$$1.comparer.Equals(k, pair$$1[0]); })]; } else { return [false, h, -1]; } } export function MutableMap$00602$$TryFind$$2B595(this$$$2, k$$1) { const matchValue$$1 = MutableMap$00602$$TryFindIndex$$2B595(this$$$2, k$$1); var $target$$10; if (matchValue$$1[0]) { if (matchValue$$1[2] > -1) { $target$$10 = 0; } else { $target$$10 = 1; } } else { $target$$10 = 1; } switch ($target$$10) { case 0: { return getItemFromDict(this$$$2["entries@23"], matchValue$$1[1])[matchValue$$1[2]]; } case 1: { return null; } } } export function MutableMap$00602$$get_Comparer(this$$$3) { return this$$$3.comparer; } export function MutableMap$00602$$Clear(this$$$4) { this$$$4["entries@23"].clear(); } export function MutableMap$00602$$get_Count(this$$$5) { const source = this$$$5["entries@23"].values(); return sumBy(function projection(pairs$$2) { return pairs$$2.length; }, source, { GetZero() { return 0; }, Add($x$$2, $y$$3) { return $x$$2 + $y$$3; } }) | 0; } export function MutableMap$00602$$get_Item$$2B595(this$$$6, k$$2) { const matchValue$$2 = MutableMap$00602$$TryFind$$2B595(this$$$6, k$$2); if (matchValue$$2 != null) { const pair$$2 = matchValue$$2; return pair$$2[1]; } else { throw new Error("The item was not found in collection"); } } export function MutableMap$00602$$set_Item$$5BDDA1(this$$$7, k$$3, v) { const matchValue$$3 = MutableMap$00602$$TryFindIndex$$2B595(this$$$7, k$$3); var $target$$20; if (matchValue$$3[0]) { if (matchValue$$3[2] > -1) { $target$$20 = 0; } else { $target$$20 = 1; } } else { $target$$20 = 1; } switch ($target$$20) { case 0: { getItemFromDict(this$$$7["entries@23"], matchValue$$3[1])[matchValue$$3[2]] = [k$$3, v]; break; } case 1: { if (matchValue$$3[0]) { const value = getItemFromDict(this$$$7["entries@23"], matchValue$$3[1]).push([k$$3, v]); null, null; } else { this$$$7["entries@23"].set(matchValue$$3[1], [[k$$3, v]]); } break; } } } export function MutableMap$00602$$Add$$5BDDA1(this$$$8, k$$4, v$$1) { const matchValue$$4 = MutableMap$00602$$TryFindIndex$$2B595(this$$$8, k$$4); var $target$$24; if (matchValue$$4[0]) { if (matchValue$$4[2] > -1) { $target$$24 = 0; } else { $target$$24 = 1; } } else { $target$$24 = 1; } switch ($target$$24) { case 0: { let msg; const clo1 = toText(printf("An item with the same key has already been added. Key: %A")); msg = clo1(k$$4); throw new Error(msg); break; } case 1: { if (matchValue$$4[0]) { const value$$1 = getItemFromDict(this$$$8["entries@23"], matchValue$$4[1]).push([k$$4, v$$1]); null, null; } else { this$$$8["entries@23"].set(matchValue$$4[1], [[k$$4, v$$1]]); } break; } } } export function MutableMap$00602$$ContainsKey$$2B595(this$$$9, k$$5) { const matchValue$$5 = MutableMap$00602$$TryFindIndex$$2B595(this$$$9, k$$5); var $target$$27; if (matchValue$$5[0]) { if (matchValue$$5[2] > -1) { $target$$27 = 0; } else { $target$$27 = 1; } } else { $target$$27 = 1; } switch ($target$$27) { case 0: { return true; } case 1: { return false; } } } export function MutableMap$00602$$Remove$$2B595(this$$$10, k$$6) { const matchValue$$6 = MutableMap$00602$$TryFindIndex$$2B595(this$$$10, k$$6); var $target$$30; if (matchValue$$6[0]) { if (matchValue$$6[2] > -1) { $target$$30 = 0; } else { $target$$30 = 1; } } else { $target$$30 = 1; } switch ($target$$30) { case 0: { getItemFromDict(this$$$10["entries@23"], matchValue$$6[1]).splice(matchValue$$6[2], 1); return true; } case 1: { return false; } } } MutableMap$00602.prototype[Symbol.iterator] = function () { var elems; const this$$$11 = this; return toIterator((elems = delay(function () { return collect(function (pairs$$3) { return map(function (pair$$3) { return pair$$3; }, pairs$$3); }, this$$$11["entries@23"].values()); }), getEnumerator(elems))); }; MutableMap$00602.prototype.Add = function (item) { const this$$$12 = this; MutableMap$00602$$Add$$5BDDA1(this$$$12, item[0], item[1]); }; MutableMap$00602.prototype.Clear = function () { const this$$$13 = this; MutableMap$00602$$Clear(this$$$13); }; MutableMap$00602.prototype.Contains = function (item$$1) { var p; const this$$$14 = this; const matchValue$$7 = MutableMap$00602$$TryFind$$2B595(this$$$14, item$$1[0]); var $target$$31; if (matchValue$$7 != null) { if (p = matchValue$$7, equals(p[1], item$$1[1])) { $target$$31 = 0; } else { $target$$31 = 1; } } else { $target$$31 = 1; } switch ($target$$31) { case 0: { return true; } case 1: { return false; } } }; MutableMap$00602.prototype.CopyTo = function (array, arrayIndex) { const this$$$15 = this; iterateIndexed(function action(i$$10, e) { array[arrayIndex + i$$10] = e; }, this$$$15); }; Object.defineProperty(MutableMap$00602.prototype, "Count", { "get": function () { const this$$$16 = this; return MutableMap$00602$$get_Count(this$$$16) | 0; } }); Object.defineProperty(MutableMap$00602.prototype, "IsReadOnly", { "get": function () { return false; } }); MutableMap$00602.prototype.Remove = function (item$$2) { const this$$$18 = this; const matchValue$$8 = MutableMap$00602$$TryFind$$2B595(this$$$18, item$$2[0]); if (matchValue$$8 != null) { const pair$$4 = matchValue$$8; if (equals(pair$$4[1], item$$2[1])) { const value$$2 = MutableMap$00602$$Remove$$2B595(this$$$18, item$$2[0]); value$$2, null; } return true; } else { return false; } }; Object.defineProperty(MutableMap$00602.prototype, "size", { "get": function () { const this$$$19 = this; return MutableMap$00602$$get_Count(this$$$19) | 0; } }); MutableMap$00602.prototype.clear = function () { const this$$$20 = this; MutableMap$00602$$Clear(this$$$20); }; MutableMap$00602.prototype.delete = function (k$$7) { const this$$$21 = this; return MutableMap$00602$$Remove$$2B595(this$$$21, k$$7); }; MutableMap$00602.prototype.entries = function () { const this$$$22 = this; return map(function mapping(x) { return x; }, this$$$22); }; MutableMap$00602.prototype.get = function (k$$8) { const this$$$23 = this; return MutableMap$00602$$get_Item$$2B595(this$$$23, k$$8); }; MutableMap$00602.prototype.has = function (k$$9) { const this$$$24 = this; return MutableMap$00602$$ContainsKey$$2B595(this$$$24, k$$9); }; MutableMap$00602.prototype.keys = function () { const this$$$25 = this; return map(function mapping$$1(pair$$5) { return pair$$5[0]; }, this$$$25); }; MutableMap$00602.prototype.set = function (k$$10, v$$2) { const this$$$26 = this; MutableMap$00602$$set_Item$$5BDDA1(this$$$26, k$$10, v$$2); return this$$$26; }; MutableMap$00602.prototype.values = function () { const this$$$27 = this; return map(function mapping$$2(pair$$6) { return pair$$6[1]; }, this$$$27); };