The EventType associated type on EventContent practically provides the same information.
ruma-macros provides procedural macros for easily generating types for Ruma crates.