Skip to content

Commit

Permalink
👔 up: replace all interface{} to any
Browse files Browse the repository at this point in the history
  • Loading branch information
inhere committed Dec 16, 2022
1 parent 12e6d2e commit 13645ca
Show file tree
Hide file tree
Showing 8 changed files with 54 additions and 51 deletions.
47 changes: 23 additions & 24 deletions event.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
// Package event is lightweight event manager and dispatcher implements by Go.
//
package event

// Event interface
type Event interface {
Name() string
Get(key string) interface{}
Set(key string, val interface{})
Add(key string, val interface{})
Data() map[string]interface{}
Get(key string) any
Set(key string, val any)
Add(key string, val any)
Data() map[string]any
SetData(M) Event
Abort(bool)
IsAborted() bool
Expand All @@ -19,32 +18,32 @@ type BasicEvent struct {
// event name
name string
// user data.
data map[string]interface{}
data map[string]any
// target
target interface{}
target any
// mark is aborted
aborted bool
}

// NewBasic new a basic event instance
func NewBasic(name string, data M) BasicEvent {
func NewBasic(name string, data M) *BasicEvent {
if data == nil {
data = make(map[string]interface{})
data = make(map[string]any)
}

return BasicEvent{
return &BasicEvent{
name: name,
data: data,
}
}

// Abort event loop exec
func (e BasicEvent) Abort(abort bool) {
func (e *BasicEvent) Abort(abort bool) {
e.aborted = abort
}

// Fill event data
func (e BasicEvent) Fill(target interface{}, data M) BasicEvent {
func (e *BasicEvent) Fill(target any, data M) *BasicEvent {
if data != nil {
e.data = data
}
Expand All @@ -54,12 +53,12 @@ func (e BasicEvent) Fill(target interface{}, data M) BasicEvent {
}

// AttachTo add current event to the event manager.
func (e BasicEvent) AttachTo(em ManagerFace) {
func (e *BasicEvent) AttachTo(em ManagerFace) {
em.AddEvent(e)
}

// Get data by index
func (e BasicEvent) Get(key string) interface{} {
func (e *BasicEvent) Get(key string) any {
if v, ok := e.data[key]; ok {
return v
}
Expand All @@ -68,57 +67,57 @@ func (e BasicEvent) Get(key string) interface{} {
}

// Add value by key
func (e BasicEvent) Add(key string, val interface{}) {
func (e *BasicEvent) Add(key string, val any) {
if _, ok := e.data[key]; !ok {
e.Set(key, val)
}
}

// Set value by key
func (e BasicEvent) Set(key string, val interface{}) {
func (e *BasicEvent) Set(key string, val any) {
if e.data == nil {
e.data = make(map[string]interface{})
e.data = make(map[string]any)
}

e.data[key] = val
}

// Name get event name
func (e BasicEvent) Name() string {
func (e *BasicEvent) Name() string {
return e.name
}

// Data get all data
func (e BasicEvent) Data() map[string]interface{} {
func (e *BasicEvent) Data() map[string]any {
return e.data
}

// IsAborted check.
func (e BasicEvent) IsAborted() bool {
func (e *BasicEvent) IsAborted() bool {
return e.aborted
}

// Target get target
func (e BasicEvent) Target() interface{} {
func (e *BasicEvent) Target() any {
return e.target
}

// SetName set event name
func (e BasicEvent) SetName(name string) BasicEvent {
func (e *BasicEvent) SetName(name string) *BasicEvent {
e.name = name
return e
}

// SetData set data to the event
func (e BasicEvent) SetData(data M) Event {
func (e *BasicEvent) SetData(data M) Event {
if data != nil {
e.data = data
}
return e
}

// SetTarget set event target
func (e BasicEvent) SetTarget(target interface{}) BasicEvent {
func (e *BasicEvent) SetTarget(target any) *BasicEvent {
e.target = target
return e
}
14 changes: 7 additions & 7 deletions event_all_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ func TestFire(t *testing.T) {
err, e = Trigger("evt2", M{"k": "v"})
assert.NoError(t, err)
assert.Equal(t, "evt2", e.Name())
assert.Equal(t, map[string]interface{}{"k": "v"}, e.Data())
assert.Equal(t, map[string]any{"k": "v"}, e.Data())

// clear all
Reset()
Expand Down Expand Up @@ -361,7 +361,7 @@ func TestListenGroupEvent(t *testing.T) {
func TestManager_AsyncFire(t *testing.T) {
em := NewManager("test")
em.On("e1", ListenerFunc(func(e Event) error {
assert.Equal(t, map[string]interface{}{"k": "v"}, e.Data())
assert.Equal(t, map[string]any{"k": "v"}, e.Data())
e.Set("nk", "nv")
return nil
}))
Expand All @@ -388,7 +388,7 @@ func TestManager_AsyncFire(t *testing.T) {
func TestManager_AwaitFire(t *testing.T) {
em := NewManager("test")
em.On("e1", ListenerFunc(func(e Event) error {
assert.Equal(t, map[string]interface{}{"k": "v"}, e.Data())
assert.Equal(t, map[string]any{"k": "v"}, e.Data())
e.Set("nk", "nv")
return nil
}))
Expand All @@ -405,8 +405,8 @@ type testSubscriber struct {
// ooo
}

func (s *testSubscriber) SubscribedEvents() map[string]interface{} {
return map[string]interface{}{
func (s *testSubscriber) SubscribedEvents() map[string]any {
return map[string]any{
"e1": ListenerFunc(s.e1Handler),
"e2": ListenerItem{
Priority: AboveNormal,
Expand All @@ -425,8 +425,8 @@ func (s *testSubscriber) e1Handler(e Event) error {

type testSubscriber2 struct{}

func (s testSubscriber2) SubscribedEvents() map[string]interface{} {
return map[string]interface{}{
func (s testSubscriber2) SubscribedEvents() map[string]any {
return map[string]any{
"e1": "invalid",
}
}
Expand Down
2 changes: 1 addition & 1 deletion global.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func MustTrigger(name string, params M) Event {
}

// FireBatch fire multi event at once.
func FireBatch(es ...interface{}) []error {
func FireBatch(es ...any) []error {
return DefaultEM.FireBatch(es...)
}

Expand Down
7 changes: 4 additions & 3 deletions listener.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ type Subscriber interface {
// SubscribedEvents register event listeners
// key: is event name
// value: can be Listener or ListenerItem interface
SubscribedEvents() map[string]interface{}
SubscribedEvents() map[string]any
}

// ListenerItem storage a event listener and it's priority value.
Expand Down Expand Up @@ -60,7 +60,8 @@ func (lq *ListenerQueue) Push(li *ListenerItem) *ListenerQueue {

// Sort the queue items by ListenerItem's priority.
// Priority:
// High > Low
//
// High > Low
func (lq *ListenerQueue) Sort() *ListenerQueue {
// if lq.IsEmpty() {
// return lq
Expand Down Expand Up @@ -102,7 +103,7 @@ func (lq *ListenerQueue) Remove(listener Listener) {
lq.items = newItems
}

// Clear clear all listeners
// Clear all listeners
func (lq *ListenerQueue) Clear() {
lq.items = lq.items[:0]
}
Expand Down
17 changes: 10 additions & 7 deletions manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const Wildcard = "*"
var goodNameReg = regexp.MustCompile(`^[a-zA-Z][\w-.*]*$`)

// M is short name for map[string]...
type M = map[string]interface{}
type M = map[string]any

// ManagerFace event manager interface
type ManagerFace interface {
Expand Down Expand Up @@ -74,8 +74,9 @@ func (em *Manager) Listen(name string, listener Listener, priority ...int) {
// On register a event handler/listener. can setting priority.
//
// Usage:
// On("evt0", listener)
// On("evt0", listener, High)
//
// On("evt0", listener)
// On("evt0", listener, High)
func (em *Manager) On(name string, listener Listener, priority ...int) {
pv := Normal
if len(priority) > 0 {
Expand Down Expand Up @@ -208,8 +209,9 @@ func (em *Manager) AwaitFire(e Event) (err error) {

// FireBatch fire multi event at once.
// Usage:
// FireBatch("name1", "name2", &MyEvent{})
func (em *Manager) FireBatch(es ...interface{}) (ers []error) {
//
// FireBatch("name1", "name2", &MyEvent{})
func (em *Manager) FireBatch(es ...any) (ers []error) {
var err error
for _, e := range es {
if name, ok := e.(string); ok {
Expand Down Expand Up @@ -355,8 +357,9 @@ func (em *Manager) ListenedNames() map[string]int {
// RemoveListener remove a given listener, you can limit event name.
//
// Usage:
// RemoveListener("", listener)
// RemoveListener("name", listener) // limit event name.
//
// RemoveListener("", listener)
// RemoveListener("name", listener) // limit event name.
func (em *Manager) RemoveListener(name string, listener Listener) {
if name != "" {
if lq, ok := em.listeners[name]; ok {
Expand Down
6 changes: 3 additions & 3 deletions simpleevent/data.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ type EventData struct {
// event name
name string
// user data.
Data []interface{}
Data []any
}

// Name get
Expand All @@ -28,13 +28,13 @@ func (e *EventData) IsAborted() bool {
return e.aborted
}

func (e *EventData) init(name string, data []interface{}) {
func (e *EventData) init(name string, data []any) {
e.name = name
e.Data = data
}

func (e *EventData) reset() {
e.name = ""
e.Data = make([]interface{}, 0)
e.Data = make([]any, 0)
e.aborted = false
}
6 changes: 3 additions & 3 deletions simpleevent/default.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ func Has(name string) bool {
}

// Fire fire handlers by name.
func Fire(name string, args ...interface{}) error {
func Fire(name string, args ...any) error {
return DefaultEM.Fire(name, args)
}

// MustFire fire event by name. will panic on error
func MustFire(name string, args ...interface{}) {
func MustFire(name string, args ...any) {
DefaultEM.MustFire(name, args)
}

func funcName(f interface{}) string {
func funcName(f any) string {
return runtime.FuncForPC(reflect.ValueOf(f).Pointer()).Name()
}
6 changes: 3 additions & 3 deletions simpleevent/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func NewEventManager() *EventManager {
}

// set pool creator
em.pool.New = func() interface{} {
em.pool.New = func() any {
return &EventData{}
}

Expand All @@ -56,15 +56,15 @@ func (em *EventManager) On(name string, handler HandlerFunc) {
}

// MustFire fire handlers by name. will panic on error
func (em *EventManager) MustFire(name string, args ...interface{}) {
func (em *EventManager) MustFire(name string, args ...any) {
err := em.Fire(name, args...)
if err != nil {
panic(err)
}
}

// Fire handlers by name
func (em *EventManager) Fire(name string, args ...interface{}) (err error) {
func (em *EventManager) Fire(name string, args ...any) (err error) {
handlers, ok := em.handlers[name]
if !ok {
return
Expand Down

0 comments on commit 13645ca

Please sign in to comment.