I was happy to see that the idea of using nothing
to indicate removing an entry was removed from the PR #25697, which would have broken a lot of code (we used nothing
to indicate JSON null
), and I think there is a cleaner way that the functionality of being able to also remove items in a non-breaking fashion.
Now that replacements are done using Pair
s, i.e. key => value
, a wrapper type could be constructed to indicate that the key is to be removed instead, i.e. Delete(key)
(struct Delete ; val::Any ; end
), in a similar fashion that OccursIn
and EqualsTo
are used to wrap values for the find*
functions now.