mirror of
https://github.com/hanzoai/telemetry.git
synced 2026-10-30 20:01:49 +00:00
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description Move substantial amounts of confmap's functionality to the internal package. This allows us to share the functionality with xconfmap and therefore add experimental functionality to confmap without risking breaking changes. I'm not a huge fan of the added indirection this introduces, but I think this is a fairly standard pattern, is fairly straightforward to trace from the top-level package down (e.g. confmap.Conf -> internal.Conf), and is probably the simplest way to accomplish this. <!-- Issue number if applicable --> #### Link to tracking issue Likely required for https://github.com/open-telemetry/opentelemetry-collector/issues/13421
23 lines
968 B
Go
23 lines
968 B
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package internal // import "go.opentelemetry.io/collector/confmap/internal"
|
|
|
|
// Unmarshaler interface may be implemented by types to customize their behavior when being unmarshaled from a Conf.
|
|
// Only types with struct or pointer to struct kind are supported.
|
|
type Unmarshaler interface {
|
|
// Unmarshal a Conf into the struct in a custom way.
|
|
// The Conf for this specific component may be nil or empty if no config available.
|
|
// This method should only be called by decoding hooks when calling Conf.Unmarshal.
|
|
Unmarshal(component *Conf) error
|
|
}
|
|
|
|
// Marshaler defines an optional interface for custom configuration marshaling.
|
|
// A configuration struct can implement this interface to override the default
|
|
// marshaling.
|
|
type Marshaler interface {
|
|
// Marshal the config into a Conf in a custom way.
|
|
// The Conf will be empty and can be merged into.
|
|
Marshal(component *Conf) error
|
|
}
|