File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -20,7 +20,7 @@ type HandlerEnd[T any] struct {
2020 handlers HandlersChain [T ]
2121}
2222
23- type EventHandler [T event. Eventer ] struct {
23+ type EventHandler [T any ] struct {
2424 selfIds []int64
2525 Composer [T ]
2626 handlerEnds []HandlerEnd [T ]
@@ -72,6 +72,17 @@ type consumer interface {
7272 consume (ctx context.Context , emitter driver.Emitter , event event.Event ) error
7373}
7474
75+ func SubEvent [T any ](engine * Engine , eventype string ) * EventHandler [T ] {
76+ handler := & EventHandler [T ]{
77+ log : engine .log ,
78+ }
79+ // root a pointer to the beginning of the middleware chain
80+ handler .root = handler
81+
82+ engine .consumers [eventype ] = handler
83+ return handler
84+ }
85+
7586// start handler all self event
7687func OnEvent [T event.Eventer ](engine * Engine ) * EventHandler [T ] {
7788 eventHandler := new (EventHandler [T ])
Original file line number Diff line number Diff line change 55 "runtime"
66 "strings"
77
8- "github.com/nsxdevx/nsxbot/event"
98 "github.com/nsxdevx/nsxbot/filter"
109)
1110
@@ -23,7 +22,7 @@ type HandlersChain[T any] []HandlerFunc[T]
2322
2423type HandlerFunc [T any ] func (ctx * Context [T ])
2524
26- type Composer [T event. Eventer ] struct {
25+ type Composer [T any ] struct {
2726 handlers HandlersChain [T ]
2827 filters FilterChain [T ]
2928 root * EventHandler [T ]
You can’t perform that action at this time.
0 commit comments