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 }