func (EnvProvider) Name() string {
	return "env"
}
Name of the provider.
package zconfig
import (
	"os"
	"strings"
)
type ArgsProvider struct {
	Args map[string]string
}
func NewArgsProvider() (p *ArgsProvider) {
	p = new(ArgsProvider)
	p.Args = make(map[string]string, len(os.Args))
	for i := 0; i < len(os.Args); i++ {
		arg := os.Args[i]
		if !strings.HasPrefix(arg, "--") {
			continue
		}
		arg = strings.TrimPrefix(arg, "--")
		parts := strings.SplitN(arg, "=", 2)
		if len(parts) == 1 && i+1 < len(os.Args) && !strings.HasPrefix(os.Args[i+1], "--") {
			parts = append(parts, os.Args[i+1])
			i += 1
		}
		parts = append(parts, "")  
		p.Args[parts[0]] = parts[1]
	}
	return p
}
func (p *ArgsProvider) Retrieve(key string) (value interface{}, found bool, err error) {
	value, found = p.Args[key]
	return value, found, nil
}
func (ArgsProvider) Name() string {
	return "args"
}
func (ArgsProvider) Priority() int {
	return 1
}
type EnvProvider struct{}
func NewEnvProvider() (p EnvProvider) {
	return p
}
func (p EnvProvider) Retrieve(key string) (value interface{}, found bool, err error) {
	value, found = os.LookupEnv(p.FormatKey(key))
	return value, found, nil
}