event := bus.Emit(abxbus.NewBaseEvent("MyEvent", nil))
var before struct {
PendingEventQueue []string `json:"pending_event_queue"`
EventHistory map[string]any `json:"event_history"`
}
snapshot, err := bus.ToJSON()
if err != nil {
panic(err)
}
if err := json.Unmarshal(snapshot, &before); err != nil {
panic(err)
}
fmt.Println("pending_event_queue=", len(before.PendingEventQueue), "event_history=", len(before.EventHistory))
// pending_event_queue= 1 event_history= 1
if _, err := event.Now(); err != nil {
panic(err)
}
var after struct {
PendingEventQueue []string `json:"pending_event_queue"`
EventHistory map[string]any `json:"event_history"`
}
snapshot, err = bus.ToJSON()
if err != nil {
panic(err)
}
if err := json.Unmarshal(snapshot, &after); err != nil {
panic(err)
}
fmt.Println("after completion -> pending_event_queue=", len(after.PendingEventQueue), "event_history=", len(after.EventHistory))
// after completion -> pending_event_queue= 0 event_history= 1