Also did a massive code refactor that helped simplify the implementation.
This initial implementation only supports structs with named field and basic enum. It also does not support all the available primitives, although when needed these are very easy to implement.