Contrary to what the previous docs said, types implementing Display did not work, only string types worked.
ruma-macros provides procedural macros for easily generating types for Ruma crates.