Ctrl K
ComunidadGuías…

pkg/watcher/event.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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
}