Skip to content

Commit 5601254

Browse files
committed
Merge branch 'main' of https://github.com/atomicgo/event
2 parents f295fac + 7c575b5 commit 5601254

File tree

1 file changed

+83
-2
lines changed

1 file changed

+83
-2
lines changed

README.md

+83-2
Original file line numberDiff line numberDiff line change
@@ -97,24 +97,105 @@ package main
9797

9898
import (
9999
"fmt"
100+
"time"
101+
102+
"atomicgo.dev/event"
100103
)
101104

105+
type Player struct {
106+
Name string
107+
}
108+
109+
var PlayerJoinEvent = event.New[Player]()
110+
102111
func main() {
103-
fmt.Println("Hello, World!")
112+
// Listen to the event as many times as you want
113+
PlayerJoinEvent.Listen(func(p Player) {
114+
fmt.Printf("Player %q joined the game\n", p.Name)
115+
})
116+
117+
PlayerJoinEvent.Listen(func(p Player) {
118+
// Do something else
119+
})
120+
121+
// ...
122+
123+
// Trigger the event somewhere - can be in a different function or package
124+
PlayerJoinEvent.Trigger(Player{Name: "Marvin"})
125+
PlayerJoinEvent.Trigger(Player{Name: "Bob"})
126+
PlayerJoinEvent.Trigger(Player{Name: "Alice"})
127+
128+
// Keep the program alive
129+
time.Sleep(time.Second)
130+
104131
}
105132
```
106133

107134
#### Output
108135

109136
```
110-
Hello, World!
137+
Player "Marvin" joined the game
138+
Player "Bob" joined the game
139+
Player "Alice" joined the game
111140
```
112141

113142

114143

115144
## Index
116145

146+
- [type Event](<#Event>)
147+
- [func New\[T any\]\(\) \*Event\[T\]](<#New>)
148+
- [func \(e \*Event\[T\]\) Close\(\)](<#Event[T].Close>)
149+
- [func \(e \*Event\[T\]\) Listen\(f func\(T\)\)](<#Event[T].Listen>)
150+
- [func \(e \*Event\[T\]\) Trigger\(value T\)](<#Event[T].Trigger>)
151+
152+
153+
<a name="Event"></a>
154+
## type [Event](<https://github.com/atomicgo/event/blob/main/event.go#L6-L9>)
155+
156+
Event represents an event system that can handle multiple listeners.
157+
158+
```go
159+
type Event[T any] struct {
160+
// contains filtered or unexported fields
161+
}
162+
```
163+
164+
<a name="New"></a>
165+
### func [New](<https://github.com/atomicgo/event/blob/main/event.go#L11>)
166+
167+
```go
168+
func New[T any]() *Event[T]
169+
```
170+
171+
172+
173+
<a name="Event[T].Close"></a>
174+
### func \(\*Event\[T\]\) [Close](<https://github.com/atomicgo/event/blob/main/event.go#L44>)
175+
176+
```go
177+
func (e *Event[T]) Close()
178+
```
179+
180+
181+
182+
<a name="Event[T].Listen"></a>
183+
### func \(\*Event\[T\]\) [Listen](<https://github.com/atomicgo/event/blob/main/event.go#L30>)
184+
185+
```go
186+
func (e *Event[T]) Listen(f func(T))
187+
```
188+
189+
Listen gets called when the event is triggered.
190+
191+
<a name="Event[T].Trigger"></a>
192+
### func \(\*Event\[T\]\) [Trigger](<https://github.com/atomicgo/event/blob/main/event.go#L18>)
193+
194+
```go
195+
func (e *Event[T]) Trigger(value T)
196+
```
117197

198+
Trigger triggers the event and notifies all listeners.
118199

119200
Generated by [gomarkdoc](<https://github.com/princjef/gomarkdoc>)
120201

0 commit comments

Comments
 (0)