Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var StopPropagation = errors.New("Event hook propagation stopped")
Functions ¶
This section is empty.
Types ¶
type Hook ¶
type Hook[T any] struct { // contains filtered or unexported fields }
Hook defines a concurrent safe structure for handling event hooks (aka. callbacks propagation).
func (*Hook[T]) Add ¶
Add registers a new handler to the hook by appending it to the existing queue.
func (*Hook[T]) PreAdd ¶ added in v0.7.6
PreAdd registers a new handler to the hook by prepending it to the existing queue.
func (*Hook[T]) Reset ¶
func (h *Hook[T]) Reset()
Reset removes all registered handlers.
@todo for consistency with other Go methods consider renaming it to Clear.
func (*Hook[T]) Trigger ¶
Trigger executes all registered hook handlers one by one with the specified `data` as an argument.
Optionally, this method allows also to register additional one off handlers that will be temporary appended to the handlers queue.
The execution stops when: - hook.StopPropagation is returned in one of the handlers - any non-nil error is returned in one of the handlers
type TaggedHook ¶ added in v0.12.0
type TaggedHook[T Tagger] struct { // contains filtered or unexported fields }
TaggedHook defines a proxy hook which register handlers that are triggered only if the TaggedHook.tags are empty or includes at least one of the event data tag(s).
func NewTaggedHook ¶ added in v0.12.0
func NewTaggedHook[T Tagger](hook *Hook[T], tags ...string) *TaggedHook[T]
NewTaggedHook creates a new TaggedHook with the provided main hook and optional tags.
func (*TaggedHook[T]) Add ¶ added in v0.12.0
func (h *TaggedHook[T]) Add(fn Handler[T])
Add registers a new handler to the hook by appending it to the existing queue.
The fn handler will be called only if the event data tags satisfy h.CanTriggerOn.
func (*TaggedHook[T]) CanTriggerOn ¶ added in v0.12.0
func (h *TaggedHook[T]) CanTriggerOn(tags []string) bool
CanTriggerOn checks if the current TaggedHook can be triggered with the provided event data tags.
func (*TaggedHook[T]) PreAdd ¶ added in v0.12.0
func (h *TaggedHook[T]) PreAdd(fn Handler[T])
PreAdd registers a new handler to the hook by prepending it to the existing queue.
The fn handler will be called only if the event data tags satisfy h.CanTriggerOn.