From 8b590695bb41107a00e7a41c250aba86880b331a Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Thu, 4 Jun 2026 21:05:50 +0200 Subject: [PATCH] macro fields_info(), to be used for logging --- lib/util.ex | 9 +++++++++ test/util_test.exs | 15 +++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 lib/util.ex create mode 100644 test/util_test.exs diff --git a/lib/util.ex b/lib/util.ex new file mode 100644 index 0000000..14a20f3 --- /dev/null +++ b/lib/util.ex @@ -0,0 +1,9 @@ +defmodule Scopes.Util do + + defmacro fields_info(fields) do + names = for {f, _, _} <- fields do f end + quote do + Enum.zip(unquote(names), unquote(fields)) + end + end +end diff --git a/test/util_test.exs b/test/util_test.exs new file mode 100644 index 0000000..98ddfb5 --- /dev/null +++ b/test/util_test.exs @@ -0,0 +1,15 @@ +defmodule Scopes.UtilTest do + use ExUnit.Case, async: true + + alias Scopes.Util + require Scopes.Util + + describe "info:" do + test "fields" do + a = 17 + b = 22 + c = 42 + assert [a: 17, b: 22, c: 42] = Util.fields_info([a, b, c]) + end + end +end