package lobby import ( "fmt" "gitea/price-is-wrong/src/lib/event" ) type Event interface{} type PlayerJoin struct { ID int } type PlayerLeave struct { ID int } func ParseEvent(b []byte) (Event, error) { typesToPointers := map[string]any{ "*lobby.PlayerJoin": &PlayerJoin{}, "*lobby.PlayerLeave": &PlayerLeave{}, } t, err := event.Parse(b, typesToPointers) return typesToPointers[t], err } func MarshalEvent(e Event) ([]byte, error) { return event.Serialize(fmt.Sprintf("%T", e), e) }