1 2 3 4 5 6 7 8 9 10 11 12 | def to_struct(kind, attrs) do struct = struct(kind) Logger .debug( "attrs = #{inspect(attrs)}" ) Enum .reduce( Map .to_list(struct), struct, fn {k, _}, acc -> case Map .fetch(attrs, k) do {:ok, v} -> %{acc | k => v} :error -> acc end end ) end |