This is a modified copy of https://github.com/Lymia/derive_setters/commit/5512c2ee4eaaf05fdac2cc1ada14fe9bdfb38d6c

Modifications: