strutil

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 30, 2021 License: MPL-2.0 Imports: 7 Imported by: 78

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AppendIfMissing

func AppendIfMissing(slice []string, i string) []string

AppendIfMissing adds a string to a slice if the given string is not present

func Difference

func Difference(a, b []string, lowercase bool) []string

Difference returns the set difference (A - B) of the two given slices. The result will also remove any duplicated values in set A regardless of whether that matches any values in set B.

func EqualStringMaps

func EqualStringMaps(a, b map[string]string) bool

EqualStringMaps tests whether two map[string]string objects are equal. Equal means both maps have the same sets of keys and values. This function is 6-10x faster than a call to reflect.DeepEqual().

func EquivalentSlices

func EquivalentSlices(a, b []string) bool

EquivalentSlices checks whether the given string sets are equivalent, as in, they contain the same values.

func GetString added in v0.2.0

func GetString(m map[string]interface{}, key string) (string, error)

GetString attempts to retrieve a value from the provided map and assert that it is a string. If the key does not exist in the map, this will return an empty string. If the key exists, but the value is not a string type, this will return an error. If no map or key is provied, this will return an error

func GlobbedStringsMatch

func GlobbedStringsMatch(item, val string) bool

GlobbedStringsMatch compares item to val with support for a leading and/or trailing wildcard '*' in item.

func MergeSlices

func MergeSlices(args ...[]string) []string

MergeSlices adds an arbitrary number of slices together, uniquely

func ParseArbitraryKeyValues

func ParseArbitraryKeyValues(input string, out map[string]string, sep string) error

ParseArbitraryKeyValues parses arbitrary <key,value> tuples. The input can be one of the following:

  • JSON string
  • Base64 encoded JSON string
  • Comma separated list of `<key>=<value>` pairs
  • Base64 encoded string containing comma separated list of `<key>=<value>` pairs

Input will be parsed into the output parameter, which should be a non-nil map[string]string.

func ParseArbitraryStringSlice

func ParseArbitraryStringSlice(input string, sep string) []string

ParseArbitraryStringSlice parses arbitrary string slice. The input can be one of the following: * JSON string * Base64 encoded JSON string * `sep` separated list of values * Base64-encoded string containing a `sep` separated list of values

Note that the separator is ignored if the input is found to already be in a structured format (e.g., JSON)

The output will always be a valid slice but may be of length zero.

func ParseDedupAndSortStrings

func ParseDedupAndSortStrings(input string, sep string) []string

ParseDedupAndSortStrings parses a comma separated list of strings into a slice of strings. The return slice will be sorted and will not contain duplicate or empty items.

func ParseDedupLowercaseAndSortStrings

func ParseDedupLowercaseAndSortStrings(input string, sep string) []string

ParseDedupLowercaseAndSortStrings parses a comma separated list of strings into a slice of strings. The return slice will be sorted and will not contain duplicate or empty items. The values will be converted to lower case.

func ParseKeyValues

func ParseKeyValues(input string, out map[string]string, sep string) error

ParseKeyValues parses a comma separated list of `<key>=<value>` tuples into a map[string]string.

func ParseStringSlice

func ParseStringSlice(input string, sep string) []string

ParseStringSlice parses a `sep`-separated list of strings into a []string with surrounding whitespace removed.

The output will always be a valid slice but may be of length zero.

func RemoveDuplicates

func RemoveDuplicates(items []string, lowercase bool) []string

RemoveDuplicates removes duplicate and empty elements from a slice of strings. This also may convert the items in the slice to lower case and returns a sorted slice.

func RemoveDuplicatesStable added in v0.1.10

func RemoveDuplicatesStable(items []string, caseInsensitive bool) []string

RemoveDuplicatesStable removes duplicate and empty elements from a slice of strings, preserving order (and case) of the original slice. In all cases, strings are compared after trimming whitespace If caseInsensitive, strings will be compared after ToLower()

func RemoveEmpty

func RemoveEmpty(items []string) []string

RemoveEmpty removes empty elements from a slice of strings

func StrListContains

func StrListContains(haystack []string, needle string) bool

StrListContains looks for a string in a list of strings.

func StrListContainsGlob

func StrListContainsGlob(haystack []string, needle string) bool

StrListContainsGlob looks for a string in a list of strings and allows globs.

func StrListDelete

func StrListDelete(s []string, d string) []string

StrListDelete removes the first occurrence of the given item from the slice of strings if the item exists.

func StrListSubset

func StrListSubset(super, sub []string) bool

StrListSubset checks if a given list is a subset of another set

func TrimStrings

func TrimStrings(items []string) []string

TrimStrings takes a slice of strings and returns a slice of strings with trimmed spaces

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL