-module(envie@inspect). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/envie/inspect.gleam"). -export([snapshot/1, load_with_trace/1]). -export_type([inspect_data/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. -type inspect_data() :: {inspect_data, list(envie@schema:inspect_field())}. -file("src/envie/inspect.gleam", 13). ?DOC( " Return a snapshot of the schema fields with decoded values, defaults,\n" " errors, and secret masking.\n" ). -spec snapshot(envie@schema:schema(any())) -> inspect_data(). snapshot(A) -> {inspect_data, envie@schema:inspect_fields(A)}. -file("src/envie/inspect.gleam", 18). ?DOC(" Load a schema and return both the parsed config and inspection data.\n"). -spec load_with_trace(envie@schema:schema(EQA)) -> {ok, {EQA, inspect_data()}} | {error, envie@error:error()}. load_with_trace(A) -> case envie@schema:load(A) of {ok, Value} -> {ok, {Value, {inspect_data, envie@schema:inspect_fields(A)}}}; {error, Err} -> {error, Err} end.