Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CallResolver ¶
func CallResolver[C any](resolver ConfigResolver, payload json.RawMessage) (C, error)
CallResolver unmarshals raw JSON into the input type expected by `resolver`, invokes it, and converts the first return value to the requested generic type C.
Types ¶
type ConfigResolver ¶
type ConfigResolver any
ConfigResolver can be *any* function whose signature is:
func(<Input>) (<Output>, error)
The concrete types are discovered at runtime via reflection. Signature check happens at registration time.
type ConfigResolverManager ¶
type ConfigResolverManager struct {
// contains filtered or unexported fields
}
ConfigResolverManager manages config resolvers with thread-safe operations
func NewConfigResolverManager ¶
func NewConfigResolverManager() *ConfigResolverManager
NewConfigResolverManager creates a new ConfigResolverManager
func (*ConfigResolverManager) ListResolvers ¶
func (m *ConfigResolverManager) ListResolvers() []string
ListResolvers returns all registered names in deterministic order.
func (*ConfigResolverManager) NameOf ¶
func (m *ConfigResolverManager) NameOf(r ConfigResolver) string
NameOf returns the registered name for the given resolver, or empty string.
func (*ConfigResolverManager) Register ¶
func (m *ConfigResolverManager) Register( fn ConfigResolver, info ResolverInfo, )
Register binds an explicit name to a resolver and stores its metadata. It panics if the name is already taken.
type ResolverInfo ¶
ResolverInfo contains metadata about a config resolver