event

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Jan 20, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Cast

func Cast[T any](e *Event) (T, bool)

func OnTyped

func OnTyped[T any](l *Listener, tp Type, call func(d T))

Types

type Config

type Config struct {
	ThreadSafe bool // 是否启用线程安全保护
}

Config 监听器配置选项

type Event

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

func NewEvent

func NewEvent(eventType Type, payload ...any) *Event

func (*Event) Payload

func (e *Event) Payload() any

func (*Event) Type

func (e *Event) Type() Type

type HandlerInfo

type HandlerInfo struct {
	ID      uint64
	Handler func(eventData *Event)
}

HandlerInfo 存储处理函数和其唯一标识符

type Listener

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

Listener 事件监听器,支持多个监听器和删除功能

func NewListener

func NewListener() *Listener

NewListener 创建新的监听器实例(默认启用线程安全)

func NewListenerUnsafe

func NewListenerUnsafe() *Listener

NewListenerUnsafe 创建非线程安全的监听器实例(性能更好)

func NewListenerWithConfig

func NewListenerWithConfig(config Config) *Listener

NewListenerWithConfig 使用配置创建监听器实例

func (*Listener) Count

func (l *Listener) Count(eventType Type) int

Count 返回指定事件类型的监听器数量

func (*Listener) Emit

func (l *Listener) Emit(event *Event)

Emit 触发事件,按注册顺序执行所有监听器

func (*Listener) HasListeners

func (l *Listener) HasListeners(eventType Type) bool

HasListeners 检查是否有监听器注册到指定事件类型

func (*Listener) Off

func (l *Listener) Off(eventType Type, handlerID uint64) bool

Off 删除特定的监听器

func (*Listener) OffAll

func (l *Listener) OffAll(eventType Type)

OffAll 删除某个事件类型的所有监听器

func (*Listener) On

func (l *Listener) On(eventType Type, handler func(eventData *Event)) uint64

On 添加事件监听器,返回唯一ID用于删除

type Type

type Type int

Jump to

Keyboard shortcuts

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