https://www.somethingsblog.com/2024/10/22/rust-procedural-macros-a-beginners-guide/