pkg envvar, func AppendUsingSeparator(string, string, string) string
pkg envvar, func CopyMap(map[string]string) map[string]string
pkg envvar, func CopySlice([]string) []string
pkg envvar, func JoinKeyValue(string, string) string
pkg envvar, func JoinTokens([]string, string) string
pkg envvar, func MapToSlice(map[string]string) []string
pkg envvar, func MergeMaps(...map[string]string) map[string]string
pkg envvar, func MergeSlices(...[]string) []string
pkg envvar, func PrependUsingSeparator(string, string, string) string
pkg envvar, func SliceToMap([]string) map[string]string
pkg envvar, func SortByKey([]string)
pkg envvar, func SplitKeyValue(string) (string, string)
pkg envvar, func SplitTokens(string, string) []string
pkg envvar, func VarsFromMap(map[string]string) *Vars
pkg envvar, func VarsFromOS() *Vars
pkg envvar, func VarsFromSlice([]string) *Vars
pkg envvar, method (*Vars) Base() map[string]string
pkg envvar, method (*Vars) Contains(string) bool
pkg envvar, method (*Vars) Delete(...string)
pkg envvar, method (*Vars) Deltas() map[string]*string
pkg envvar, method (*Vars) Get(string) string
pkg envvar, method (*Vars) GetTokens(string, string) []string
pkg envvar, method (*Vars) Set(string, string)
pkg envvar, method (*Vars) SetTokens(string, []string, string)
pkg envvar, method (*Vars) ToMap() map[string]string
pkg envvar, method (*Vars) ToSlice() []string
pkg envvar, method (*Vars) UpdateOS() error
pkg envvar, type Vars struct
