Files
notarius/internal/framework/pipeline/chunk_validation.go

33 lines
874 B
Go

package pipeline
import (
"fmt"
"gitea.maximumdirect.net/eric/notarius/internal/core/source"
)
func validateAndMaterializeChunkPlan(doc *source.SourceDocument, plan source.ChunkPlan) (source.ChunkPlan, []source.Chunk, error) {
canonical, err := source.CanonicalizeChunkPlan(plan)
if err != nil {
return source.ChunkPlan{}, nil, fmt.Errorf("canonicalize chunk plan: %w", err)
}
if err := source.ValidateChunkPlan(doc, canonical); err != nil {
return source.ChunkPlan{}, nil, err
}
chunks, err := source.MaterializeChunkPlan(doc, canonical)
if err != nil {
return source.ChunkPlan{}, nil, err
}
return canonical, chunks, nil
}
func cloneSourceUnit(unit source.SourceUnit) source.SourceUnit {
return source.SourceUnit{
ID: unit.ID,
Kind: unit.Kind,
Text: unit.Text,
Ref: unit.Ref,
Metadata: cloneMetadata(unit.Metadata),
}
}