24 lines
804 B
Cheetah
24 lines
804 B
Cheetah
{{ define "handlers" }}
|
|
{{ $pkg := $.Package }}
|
|
{{ template "header" $ }}
|
|
|
|
{{- range $s := $.Structs }}{{ if eq $s.Interface "UpdateClass" }}
|
|
{{ $eventName := trimPrefix $s.Name "Update"}}
|
|
// {{ $eventName }}Handler is a {{ $eventName }} event handler.
|
|
type {{ $eventName }}Handler func(ctx context.Context, e Entities, update *{{ $s.Name }}) error
|
|
|
|
// On{{ $eventName }} sets {{ $eventName }} handler.
|
|
func (u UpdateDispatcher) On{{ $eventName }}(handler {{ $eventName }}Handler) {
|
|
u.handlers[{{ $s.Name }}TypeID] = func(ctx context.Context, e Entities, update UpdateClass) error {
|
|
return handler(ctx, e, update.(*{{ $s.Name }}))
|
|
}
|
|
}
|
|
{{- end }}{{ end }}
|
|
|
|
// OnFallback sets fallback handler.
|
|
func (u *UpdateDispatcher) OnFallback(handler Handler) {
|
|
u.fallback = handler
|
|
}
|
|
|
|
{{ end }}
|