dry-equalizer 0.3.0 includes a change that adds a memoized hash method. Is there any reason not to enable this feature on
E.g. replace this:
with the following:
include Dry::Equalizer(:__attributes__, immutable: true)
Might break code for anyone (ab)using
Dry::Struct for mutable objects and expecting the
hash method to recalculate accordingly. Seems like a remote possibility.
I have a recursive data structure (a tree) that I model with
Dry::Struct subclass instances; by including the
Dry::Equalizer module as above directly in my subclasses, the average invocation of
hash dropped from 3.25 sec to under 20ms.