When you send a struct, you simply send the bytes from a startaddress till an offset to this startaddress.
So just make your own messaging system and say the first byte will decide afterwards which event type / struct is used. Thats it