pkg/watcher/event.go
Rama main · réplica de lectura del repositorio original.
package watcher
import "os"
type EventType = string
const (
CREATED EventType = "Created"
MODIFIED EventType = "Modified"
DELETED EventType = "Deleted"
)
type Event struct {
EventType EventType
Path string
Info os.FileInfo
}
type Events struct {
latestEvents map[string]Event // Latest event per file
}
func newEventBatch() *Events {
return &Events{
latestEvents: make(map[string]Event),
}
}
func (e *Events) addEvent(path string, event EventType, info os.FileInfo) {
e.latestEvents[path] = Event{
EventType: event,
Path: path,
Info: info,
}
}
func (e *Events) Events() []Event {
events := make([]Event, 0, len(e.latestEvents))
for _, event := range e.latestEvents {
events = append(events, event)
}
return events
}