I forked your project, and added multiple functions per event. Also I introduced interfaces for Event and Function, which improves speed and adds functionality.
The only breaking change is that calling Fire(...) now returns [][]reflect.Value() instead of []reflect.Value()
Also the return channel is closed after functions complete.
I suggest you look at it at https://github.com/lkarlslund/go-trigger and give feedback.
I forked your project, and added multiple functions per event. Also I introduced interfaces for Event and Function, which improves speed and adds functionality.
The only breaking change is that calling Fire(...) now returns [][]reflect.Value() instead of []reflect.Value()
Also the return channel is closed after functions complete.
I suggest you look at it at https://github.com/lkarlslund/go-trigger and give feedback.