package engine import ( "errors" "gitea.maximumdirect.net/eric/ConfigKit/internal/document" ) var errDiffInspectionUnavailable = errors.New("configkit: diff inspection unavailable") type diffRegion struct { path Path left *document.Node right *document.Node } func prepareDiffRegions(left, right *Inspection) ([]diffRegion, error) { if left == nil || left.final == nil || right == nil || right.final == nil { return nil, errDiffInspectionUnavailable } deltas := compareConfigurationValues(left.final, right.final) regions := make([]diffRegion, 0, len(deltas)) for _, delta := range deltas { leftNode, leftPresent := documentAtPathWithLookup(left.final, delta.path, left.immutableLookup) if !leftPresent { leftNode = nil } rightNode, rightPresent := documentAtPathWithLookup(right.final, delta.path, right.immutableLookup) if !rightPresent { rightNode = nil } regions = append(regions, diffRegion{path: delta.path, left: leftNode, right: rightNode}) } return regions, nil }