You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
759 B
Go

package cabret
import (
"log"
)
func init() {
log.SetFlags(0)
}
const MatchResultKey = "MatchResult"
type MatchResult struct {
File string
Captures map[string]string
}
type Map map[string]any
type File struct {
Path string
Content
}
type Content struct {
// Type for known content formats is just the mime-type
Type string
// Data is the content of the file
Data []byte
// Metadata is any extra data of the file (e.g. yaml frontmatter) or injected by plugins
Metadata Map
}
type Operation interface {
Configure(config map[string]any) error
}
type ListOperation interface {
Operation
ProcessList(contents []Content) ([]Content, error)
}
type ItemOperation interface {
Operation
ProcessItem(content Content) (*Content, error)
}