What is a good way to compare structs?

In some tests, we need to compare 2 structs between each other. However when we build

  • the test struct: this is done manually
%{
  data_actions: %{A, B}
}
  • the core struct, we go through a
data_actions |> Map.from_struct() |> Enum.reduce( ...)

Since OTP 26, Maps aren’t ordered anymore (Taking Control of Map Sort Order in Elixir · The Phoenix Files) so the result is random (in the resulting struct, the data_actions have a random order).

Is there any way to compare a struct recursively, without considering the values order? What is the elixir way to do it clean?