I made a Rust crate for creating forms with GTK, mainly through a derive proc-macro. It was challenging to figure out how proc-macros actually worked at first, but I eventually got the hang of it and managed to get it to generate the code to create a GTK widget and pull data from it.
It’s in a usable state right now with basic features. The derive proc-macro can add text input and number fields, allowing to create forms quickly and easily.