Files
seriatim/internal/builtin/merge.go

39 lines
1006 B
Go

package builtin
import (
"context"
"sort"
"gitea.maximumdirect.net/eric/seriatim/internal/config"
"gitea.maximumdirect.net/eric/seriatim/internal/model"
"gitea.maximumdirect.net/eric/seriatim/internal/report"
)
type placeholderMerger struct{}
func (placeholderMerger) Name() string {
return "placeholder-merger"
}
func (placeholderMerger) Merge(ctx context.Context, in []model.CanonicalTranscript, cfg config.Config) (model.MergedTranscript, []report.Event, error) {
if err := ctx.Err(); err != nil {
return model.MergedTranscript{}, nil, err
}
segments := make([]model.Segment, 0)
for _, transcript := range in {
segments = append(segments, transcript.Segments...)
}
sort.SliceStable(segments, func(i, j int) bool {
return model.SegmentLess(segments[i], segments[j])
})
return model.MergedTranscript{
Segments: segments,
OverlapGroups: nil,
}, []report.Event{
report.Info("merge", "placeholder-merger", "merged placeholder canonical transcript(s)"),
}, nil
}