fix(registry): log Unregister Close errors, add doc comments and 59 unit tests
Log close errors in Unregister instead of silently discarding them. Add doc comments to all exported symbols across 20 registry files. Add comprehensive tests covering base registry, all wrapper types, hot-reload delegation, nil-fallback semantics, and global accessors.
This commit is contained in:
@@ -7,14 +7,18 @@ import (
|
||||
"github.com/go-gost/core/resolver"
|
||||
)
|
||||
|
||||
// resolverRegistry implements a hot-reload-safe registry for resolver.Resolver.
|
||||
type resolverRegistry struct {
|
||||
registry[resolver.Resolver]
|
||||
}
|
||||
|
||||
// Register stores a Resolver under the given name.
|
||||
func (r *resolverRegistry) Register(name string, v resolver.Resolver) error {
|
||||
return r.registry.Register(name, v)
|
||||
}
|
||||
|
||||
// Get returns a wrapper that delegates to the currently registered Resolver.
|
||||
// Returns nil if name is empty.
|
||||
func (r *resolverRegistry) Get(name string) resolver.Resolver {
|
||||
if name != "" {
|
||||
return &resolverWrapper{name: name, r: r}
|
||||
|
||||
Reference in New Issue
Block a user