"use strict";
/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.CrossFieldTarget = exports.getFirstFromCrossFieldMap = exports.setInCrossFieldMap = exports.addCrossFieldQuery = void 0;
const util_1 = require("../../util");
function addCrossFieldQuery(set, revision, id, count) {
    setInCrossFieldMap(set, revision, id, count, true);
}
exports.addCrossFieldQuery = addCrossFieldQuery;
function setInCrossFieldMap(map, revision, id, count, value) {
    (0, util_1.setInRangeMap)((0, util_1.getOrAddInMap)(map, revision, []), id, count, value);
}
exports.setInCrossFieldMap = setInCrossFieldMap;
function getFirstFromCrossFieldMap(map, revision, id, count) {
    return (0, util_1.getFirstFromRangeMap)(map.get(revision) ?? [], id, count);
}
exports.getFirstFromCrossFieldMap = getFirstFromCrossFieldMap;
/**
 * @alpha
 */
var CrossFieldTarget;
(function (CrossFieldTarget) {
    CrossFieldTarget[CrossFieldTarget["Source"] = 0] = "Source";
    CrossFieldTarget[CrossFieldTarget["Destination"] = 1] = "Destination";
})(CrossFieldTarget = exports.CrossFieldTarget || (exports.CrossFieldTarget = {}));
//# sourceMappingURL=crossFieldQueries.js.map