github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/tm2/pkg/sdk/events.go (about)

     1  package sdk
     2  
     3  import (
     4  	abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types"
     5  )
     6  
     7  // ----------------------------------------------------------------------------
     8  // EventLogger
     9  // ----------------------------------------------------------------------------
    10  
    11  // EventLogger implements a simple wrapper around a slice of Event objects that
    12  // can be emitted from.
    13  type EventLogger struct {
    14  	events []Event
    15  }
    16  
    17  func NewEventLogger() *EventLogger {
    18  	return &EventLogger{nil}
    19  }
    20  
    21  func (em *EventLogger) Events() []Event { return em.events }
    22  
    23  // EmitEvent stores a single Event object.
    24  func (em *EventLogger) EmitEvent(event Event) {
    25  	em.events = append(em.events, event)
    26  }
    27  
    28  // EmitEvents stores a series of Event objects.
    29  func (em *EventLogger) EmitEvents(events []Event) {
    30  	em.events = append(em.events, events...)
    31  }
    32  
    33  // ----------------------------------------------------------------------------
    34  // Event
    35  // ----------------------------------------------------------------------------
    36  
    37  type Event = abci.Event