Add, Sub and Rem are implemented with macros. They're harder to read because of it, but their implementations are all the same except one line. Separately, AddAssign, SubAssign and RemAssign are implemented without macros, and their implementations are all the same except one line.
We should consider going full macro or going full no-macro for all of these.
I think the macros are definitely good for forwarding all the by-ref/value stuff, but I think it would be fine to separate the actual Add/Sub/Rem implementations.
Add
,Sub
andRem
are implemented with macros. They're harder to read because of it, but their implementations are all the same except one line. Separately,AddAssign
,SubAssign
andRemAssign
are implemented without macros, and their implementations are all the same except one line.We should consider going full macro or going full no-macro for all of these.