@dialog-db/query
Version:
Datalog query engine inspired by Datomic
90 lines • 4.12 kB
TypeScript
export class FormulaApplication {
/**
* @param {API.SystemOperator} source
* @param {Map<API.Variable, number>} cells
* @param {Record<string, API.Term>|API.Term} from
* @param {Record<string, API.Term>} to
* @param {API.Cursor} cursor
* @param {API.MatchFrame} parameters
*/
constructor(source: API.SystemOperator, cells: Map<API.Variable, number>, from: Record<string, API.Term> | API.Term, to: Record<string, API.Term>, cursor: API.Cursor, parameters: API.MatchFrame);
cells: Map<API.Variable<API.Scalar>, number>;
source: API.SystemOperator;
from: API.Term<API.Scalar> | Record<string, API.Term<API.Scalar>>;
to: Record<string, API.Term<API.Scalar>>;
cursor: API.Cursor;
parameters: API.MatchFrame;
get recurs(): null;
/**
* @template {API.Terms} Terms
* @param {Terms} terms
* @param {API.MatchFrame} bindings
* @returns {API.InferTerms<Terms>}
*/
resolve<Terms extends API.Terms>(terms: Terms, bindings: API.MatchFrame): API.InferTerms<Terms>;
/**
* @param {API.EvaluationContext} context
*/
evaluate({ selection }: API.EvaluationContext): Generator<never, Map<API.Variable<API.Scalar>, API.Scalar>[], unknown>;
/**
* @template {API.Terms} Terms
* @param {API.MatchFrame} frame
* @returns {API.InferTerms<Terms>}
*/
read<Terms extends API.Terms>(frame: API.MatchFrame): API.InferTerms<Terms>;
/**
* @param {API.MatchFrame} frame
* @param {Record<string, API.Scalar>} extension
*/
write(frame: API.MatchFrame, extension: Record<string, API.Scalar>): Map<API.Variable<API.Scalar>, API.Scalar>[];
toJSON(): {
match: API.FormulaMatch<{
of: API.Numeric;
by: API.Numeric;
}, API.Numeric> | API.FormulaMatch<{
of: API.Numeric;
by: API.Numeric;
}, API.Numeric> | API.FormulaMatch<{
of: API.Numeric;
by: API.Numeric;
}, API.Numeric> | API.FormulaMatch<{
of: API.Numeric;
with: API.Numeric;
}, API.Numeric> | API.FormulaMatch<{
this: string | number;
than: string | number;
}, {}> | API.FormulaMatch<boolean, boolean> | API.FormulaMatch<API.Scalar, API.Scalar> | API.FormulaMatch<{
this: string | number;
than: string | number;
}, {}> | API.FormulaMatch<{
this: string | number;
than: string | number;
}, {}> | API.FormulaMatch<{
this: string | number;
than: string | number;
}, {}> | API.FormulaMatch<API.Scalar, API.TypeName> | API.FormulaMatch<Record<string, API.Scalar>, API.Link<Record<string, API.Scalar>, 113, 30>> | API.FormulaMatch<{
text: string;
pattern: string;
}, string> | API.FormulaMatch<string, number> | API.FormulaMatch<string, string> | API.FormulaMatch<Uint8Array<ArrayBufferLike>, string> | API.FormulaMatch<string, Uint8Array<ArrayBufferLike>> | API.FormulaMatch<{
this: string;
slice: string;
}, true> | API.FormulaMatch<{
of: string;
start: string;
end: string;
}, string> | API.FormulaMatch<{
of: string;
with: string;
}, string> | API.FormulaMatch<{
of: API.Numeric;
by: API.Numeric;
}, API.Numeric> | API.FormulaMatch<{
of: API.Numeric;
by: API.Numeric /** @type {(input: API.Operand) => Iterable<API.Operand>} */;
}, number> | API.FormulaMatch<number, number>;
operator: "/" | "*" | "%" | "+" | "<" | "!" | "==" | ">" | ">=" | "<=" | "data/type" | "data/refer" | "text/like" | "text/length" | "text/words" | "text/lines" | "text/case/upper" | "text/case/lower" | "text/trim" | "text/trim/start" | "text/trim/end" | "utf8/to/text" | "text/to/utf8" | "text/includes" | "text/slice" | "text/concat" | "-" | "**" | "math/absolute";
};
toDebugString(): string;
}
import * as API from '../api.js';
//# sourceMappingURL=formula.d.ts.map