Dsxir.Predicate.Evaluator (dsxir v0.4.0)

Copy Markdown

Pure-total predicate evaluator.

Walks an AST against a runtime environment and returns {:ok, boolean()} or {:error, %{code: :type_mismatch, ...}} on shape mismatches that slipped past type-checking.

Summary

Functions

Evaluate a parsed predicate AST node against a runtime env.

Types

env()

@type env() :: %{required(atom()) => map()}

Functions

eval(arg, env)

@spec eval(term(), env()) :: {:ok, boolean()} | {:error, map()}

Evaluate a parsed predicate AST node against a runtime env.

Returns {:ok, boolean()} on success, {:error, map()} on a runtime type mismatch (e.g. a field present at the wrong type).