events

package
v1.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 29, 2024 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrDuplicateOnce   = errors.New("duplicate once call")
	ErrNoListenerFired = errors.New("no listener fired")
)

Functions

func AddListener

func AddListener(eventName string, listener EventListener)

func AddOnceListener

func AddOnceListener(eventName string, listener EventListener)

func Emit

func Emit(eventName string, args ...any) error

func Off

func Off(eventName string, listener EventListener) bool

func On

func On(eventName string, listener EventListener)

func Once

func Once(eventName string, listener EventListener)

func PrependListener

func PrependListener(eventName string, listener EventListener)

func PrependOnceListener

func PrependOnceListener(eventName string, listener EventListener)

func RemoveAllListeners

func RemoveAllListeners()

func RemoveListener

func RemoveListener(eventName string, listener EventListener) bool

func RemoveListeners

func RemoveListeners(eventName string)

Types

type Emitter

type Emitter struct {
	// contains filtered or unexported fields
}

Emitter event subscription and publishing API modeled after node https://nodejs.org/docs/latest-v16.x/api/events.html#class-eventemitter

func NewEmitter

func NewEmitter() *Emitter

func (*Emitter) AddListener

func (e *Emitter) AddListener(eventName string, listener EventListener)

AddListener Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

func (*Emitter) AddOnceListener

func (e *Emitter) AddOnceListener(eventName string, listener EventListener)

AddOnceListener Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

func (*Emitter) Emit

func (e *Emitter) Emit(eventName string, args ...any) error

Emit synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

func (*Emitter) EventNames

func (e *Emitter) EventNames() []string

func (*Emitter) ListenerCount

func (e *Emitter) ListenerCount(eventName string) int

func (*Emitter) Listeners

func (e *Emitter) Listeners(eventName string) []IListener

func (*Emitter) Off

func (e *Emitter) Off(eventName string, listener EventListener) bool

func (*Emitter) On

func (e *Emitter) On(eventName string, listener EventListener)

On No checks are made to see if the listener has already been added

func (*Emitter) Once

func (e *Emitter) Once(eventName string, listener EventListener)

func (*Emitter) PrependListener

func (e *Emitter) PrependListener(eventName string, listener EventListener)

PrependListener Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

func (*Emitter) PrependOnceListener

func (e *Emitter) PrependOnceListener(eventName string, listener EventListener)

func (*Emitter) RemoveAllListeners

func (e *Emitter) RemoveAllListeners()

func (*Emitter) RemoveListener

func (e *Emitter) RemoveListener(eventName string, listener EventListener) bool

RemoveListener will remove, at most, one instance of a listener from the listener array. If any single listener has been added multiple times to the listener array for the specified eventName, then RemoveListener() must be called multiple times to remove each instance.

func (*Emitter) RemoveListeners

func (e *Emitter) RemoveListeners(eventName string)

type Event

type Event struct {
	Name   string
	Target IEventTarget
	Args   []any
}

func NewEvent

func NewEvent(target IEventTarget, name string, args ...any) *Event

type EventHandler

type EventHandler struct {
	// contains filtered or unexported fields
}

func (*EventHandler) Fire

func (h *EventHandler) Fire(event *Event) (err error)

func (*EventHandler) Get

func (h *EventHandler) Get() EventListener

type EventListener

type EventListener func(event *Event) error

type EventOnceHandler

type EventOnceHandler struct {
	// contains filtered or unexported fields
}

func (*EventOnceHandler) Fire

func (h *EventOnceHandler) Fire(event *Event) (err error)

func (*EventOnceHandler) Get

type IEventTarget

type IEventTarget interface {
	AddListener(eventName string, listener EventListener)
	RemoveListener(eventName string, listener EventListener) bool
}

type IListener

type IListener interface {
	Get() EventListener
	Fire(*Event) error
}

func NewEventHandler

func NewEventHandler(target IEventTarget, cb EventListener) IListener

func NewEventOnceHandler

func NewEventOnceHandler(target *Emitter, cb EventListener) IListener

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL