Current section
Files
Jump to
Current section
Files
src/aarondb@engine@solver@bindings.erl
-module(aarondb@engine@solver@bindings).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/aarondb/engine/solver/bindings.gleam").
-export([resolve_part/2, resolve_part_optional/2]).
-file("src/aarondb/engine/solver/bindings.gleam", 6).
-spec resolve_part(
aarondb@shared@ast:part(),
gleam@dict:dict(binary(), aarondb@fact:value())
) -> gleam@option:option(aarondb@fact:value()).
resolve_part(Part, Ctx) ->
case Part of
{var, Name} ->
gleam@option:from_result(gleam_stdlib:map_get(Ctx, Name));
{val, Val} ->
{some, Val};
{uid, Uid} ->
{some, {ref, Uid}};
{attr_val, S} ->
{some, {str, S}};
{lookup, {_, Val@1}} ->
{some, Val@1}
end.
-file("src/aarondb/engine/solver/bindings.gleam", 19).
-spec resolve_part_optional(
aarondb@shared@ast:part(),
gleam@dict:dict(binary(), aarondb@fact:value())
) -> gleam@option:option(aarondb@fact:value()).
resolve_part_optional(Part, Ctx) ->
case Part of
{var, Name} ->
gleam@option:from_result(gleam_stdlib:map_get(Ctx, Name));
{val, Val} ->
{some, Val};
{uid, Uid} ->
{some, {ref, Uid}};
{attr_val, S} ->
{some, {str, S}};
{lookup, {_, Val@1}} ->
{some, Val@1}
end.