- 在 sqrt_test.go 中添加了 fastSqr1 测试函数,用于测试事件驱动模型 - 新增了 Event 和 Uint32AsyncEvent 类型用于测试 - 更新了 go.work、go.mod 和
34 lines
461 B
Go
34 lines
461 B
Go
package events
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
type EventState struct {
|
|
Ctx context.Context
|
|
Done chan struct{} `json:"-"`
|
|
Error error
|
|
}
|
|
|
|
func NewEventState(ctx context.Context) *EventState {
|
|
return &EventState{
|
|
Ctx: ctx,
|
|
Done: make(chan struct{}),
|
|
}
|
|
}
|
|
|
|
func (s *EventState) Close() {
|
|
s.Error = s.Ctx.Err()
|
|
close(s.Done)
|
|
}
|
|
|
|
type NewOrder struct {
|
|
ID int
|
|
}
|
|
|
|
type CreateOrderEvent struct {
|
|
NewOrder *NewOrder
|
|
ProductIDs []int
|
|
State *EventState
|
|
}
|