func New(v interface{}) (*Env, error) {
	return NewEnv(v)
}
New is a shortcut wrapper around NewEnv
package env
import (
	"errors"
	"reflect"
)
type Env struct {
	Value  reflect.Value  
	Prefix string
	Vars   []*Var
}
func Process(v interface{}) error {
	_, err := NewEnv(v)
	if err != nil {
		return err
	}
	return nil
}
func MustProcess(v interface{}) {
	_, err := NewEnv(v)
	if err != nil {
		panic(err)
	}
}
func (e *Env) FieldNames() []string {
	fieldType := e.Type()
	var fieldNames []string
	for i := 0; i < fieldType.NumField(); i++ {
		field := fieldType.Field(i)
		fieldNames = append(fieldNames, field.Name)
	}
	return fieldNames
}
func (e *Env) Type() reflect.Type {
	return e.Value.Type()
}
var errInvalidValue = errors.New("expected value must be a pointer to a struct")