Implemented a new internal/danglers package with deterministic two-pass dangling-end then dangling-start resolution
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
"gitea.maximumdirect.net/eric/seriatim/internal/backchannel"
|
||||
"gitea.maximumdirect.net/eric/seriatim/internal/coalesce"
|
||||
"gitea.maximumdirect.net/eric/seriatim/internal/config"
|
||||
"gitea.maximumdirect.net/eric/seriatim/internal/danglers"
|
||||
"gitea.maximumdirect.net/eric/seriatim/internal/filler"
|
||||
"gitea.maximumdirect.net/eric/seriatim/internal/model"
|
||||
"gitea.maximumdirect.net/eric/seriatim/internal/overlap"
|
||||
@@ -169,6 +170,27 @@ func (coalescePostprocessor) Process(ctx context.Context, in model.MergedTranscr
|
||||
}, nil
|
||||
}
|
||||
|
||||
type resolveDanglersPostprocessor struct{}
|
||||
|
||||
func (resolveDanglersPostprocessor) Name() string {
|
||||
return "resolve-danglers"
|
||||
}
|
||||
|
||||
func (resolveDanglersPostprocessor) Process(ctx context.Context, in model.MergedTranscript, cfg config.Config) (model.MergedTranscript, []report.Event, error) {
|
||||
if err := ctx.Err(); err != nil {
|
||||
return model.MergedTranscript{}, nil, err
|
||||
}
|
||||
|
||||
out, summary := danglers.Apply(in)
|
||||
return out, []report.Event{
|
||||
report.Info(
|
||||
"postprocessing",
|
||||
"resolve-danglers",
|
||||
fmt.Sprintf("merged %d dangling segment(s) into %d target segment(s)", summary.DanglersMerged, summary.TargetsChanged),
|
||||
),
|
||||
}, nil
|
||||
}
|
||||
|
||||
type autocorrectPostprocessor struct{}
|
||||
|
||||
func (autocorrectPostprocessor) Name() string {
|
||||
|
||||
@@ -16,6 +16,7 @@ func NewRegistry() *pipeline.Registry {
|
||||
registry.RegisterPostprocessor(backchannelPostprocessor{})
|
||||
registry.RegisterPostprocessor(fillerPostprocessor{})
|
||||
registry.RegisterPostprocessor(coalescePostprocessor{})
|
||||
registry.RegisterPostprocessor(resolveDanglersPostprocessor{})
|
||||
registry.RegisterPostprocessor(assignIDs{})
|
||||
registry.RegisterPostprocessor(validateOutput{})
|
||||
registry.RegisterPostprocessor(autocorrectPostprocessor{})
|
||||
|
||||
Reference in New Issue
Block a user