summary refs log tree commit diff
path: root/assets
AgeCommit message (Collapse)Author
2024-10-17NVIDIA Nsight Graphics launch wrapper and desktop fileMel
Signed-off-by: Mel <einebeere@gmail.com>
a> 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
package events

type EventHandler interface {
	Add(event Event, handler func(payload any))

	Fire(event Event, payload any)
}

var _ EventHandler = &EventHandlerImpl{}

type EventHandlerImpl struct {
	handlers map[Event]func(payload any)
}

func NewEventHandler() *EventHandlerImpl {
	return &EventHandlerImpl{
		handlers: make(map[Event]func(payload any)),
	}
}

func (h *EventHandlerImpl) Add(event Event, handler func(payload any)) {
	h.handlers[event] = handler
}

func (h *EventHandlerImpl) Fire(event Event, payload any) {
	if handler, ok := h.handlers[event]; ok {
		handler(payload)
	}
}