in processor/processor.go [496:528]
func mkRegistry(customMarkers []config.Marker) (*markers.Registry, error) {
registry := &markers.Registry{}
if err := registry.Define(objectRootMarker, markers.DescribesType, true); err != nil {
return nil, err
}
for _, marker := range crdmarkers.AllDefinitions {
if err := registry.Register(marker.Definition); err != nil {
return nil, err
}
}
for _, marker := range customMarkers {
t := markers.DescribesField
switch marker.Target {
case config.TargetTypePackage:
t = markers.DescribesPackage
case config.TargetTypeType:
t = markers.DescribesType
case config.TargetTypeField:
t = markers.DescribesField
default:
zap.S().Warnf("Skipping custom marker %s with unknown target type %s", marker.Name, marker.Target)
continue
}
if err := registry.Define(marker.Name, t, struct{}{}); err != nil {
return nil, fmt.Errorf("failed to define custom marker %s: %w", marker.Name, err)
}
}
return registry, nil
}