42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
| // Copyright The OpenTelemetry Authors
 | |
| // SPDX-License-Identifier: Apache-2.0
 | |
| 
 | |
| package confmap // import "go.opentelemetry.io/collector/confmap"
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 
 | |
| 	"go.uber.org/zap"
 | |
| )
 | |
| 
 | |
| // ConverterSettings are the settings to initialize a Converter.
 | |
| type ConverterSettings struct {
 | |
| 	// Logger is a zap.Logger that will be passed to Converters.
 | |
| 	// Converters should be able to rely on the Logger being non-nil;
 | |
| 	// when instantiating a Converter with a ConverterFactory,
 | |
| 	// nil Logger references should be replaced with a no-op Logger.
 | |
| 	Logger *zap.Logger
 | |
| 
 | |
| 	// prevent unkeyed literal initialization
 | |
| 	_ struct{}
 | |
| }
 | |
| 
 | |
| // ConverterFactory defines a factory that can be used to instantiate
 | |
| // new instances of a Converter.
 | |
| type ConverterFactory = moduleFactory[Converter, ConverterSettings]
 | |
| 
 | |
| // CreateConverterFunc is a function that creates a Converter instance.
 | |
| type CreateConverterFunc = createConfmapFunc[Converter, ConverterSettings]
 | |
| 
 | |
| // NewConverterFactory can be used to create a ConverterFactory.
 | |
| func NewConverterFactory(f CreateConverterFunc) ConverterFactory {
 | |
| 	return newConfmapModuleFactory(f)
 | |
| }
 | |
| 
 | |
| // Converter is a converter interface for the confmap.Conf that allows distributions
 | |
| // (in the future components as well) to build backwards compatible config converters.
 | |
| type Converter interface {
 | |
| 	// Convert applies the conversion logic to the given "conf".
 | |
| 	Convert(ctx context.Context, conf *Conf) error
 | |
| }
 |