Documentation ¶
Overview ¶
string utilities borrowed from: https://github.com/hashicorp/vault/blob/master/sdk/helper/strutil
Index ¶
- Variables
- func AppendIfMissing(slice []string, i string) []string
- func Base64Decode(src []byte) ([]byte, error)
- func Base64Encode(src []byte) []byte
- func Decrypt(data, key []byte) ([]byte, error)
- func DeriveKey(password string, salt []byte, customParams ...Argon2Params) ([]byte, []byte)
- func Difference(a, b []string, lowercase bool) []string
- func Encrypt(data, key []byte) []byte
- func EqualStringMaps(a, b map[string]string) bool
- func EquivalentSlices(a, b []string) bool
- func GlobbedStringsMatch(item, val string) bool
- func IntFromPtr(s *int) (result int)
- func IntPtr(i int) *int
- func MSI(args ...interface{}) map[string]interface{}
- func MergeSlices(args ...[]string) []string
- func NowTrunc() time.Time
- func PanicErr(err error)
- func ParseArbitraryStringSlice(input string, sep string) []string
- func ParseDedupAndSortStrings(input string, sep string) []string
- func ParseDedupLowercaseAndSortStrings(input string, sep string) []string
- func ParseKeyValues(input string, out map[string]string, sep string) error
- func ParseStringSlice(input string, sep string) []string
- func RandBytes(length int) []byte
- func RandString(length int) string
- func ReadFile(filename string) []byte
- func RemoveDuplicates(items []string, lowercase bool) []string
- func RemoveDuplicatesStable(items []string, caseInsensitive bool) []string
- func RemoveEmpty(items []string) []string
- func SplitExt(s string) (string, string)
- func StrFromPtr(s *string) string
- func StrListContains(haystack []string, needle string) bool
- func StrListContainsGlob(haystack []string, needle string) bool
- func StrListDelete(s []string, d string) []string
- func StrListSubset(super, sub []string) bool
- func StrPtr(s string) *string
- func StrPtrOrNil(s string) *string
- func TrimStrings(items []string) []string
- func WriteFile(filename string, data []byte, perm os.FileMode)
- type Argon2Params
- type Cache
- func (c *Cache[K, V]) Add(key K, val V)
- func (c *Cache[K, V]) Cap(cap int) *Cache[K, V]
- func (c *Cache[K, V]) Clear()
- func (c *Cache[K, V]) Get(key K) (val V, ok bool)
- func (c *Cache[K, V]) KeepAlive(keepAlive bool) *Cache[K, V]
- func (c *Cache[K, V]) Remove(key K)
- func (c *Cache[K, V]) TTL(ttl time.Duration) *Cache[K, V]
- type Time
Constants ¶
This section is empty.
Variables ¶
var DefaultArgon2Params = Argon2Params{
Time: 20,
Memory: 4 * 1024,
Threads: 1,
KeyLen: 32,
}
Results in about 40ms generation time on a 2020 MBA Only 1MB, much less than the 64MB standard
Functions ¶
func AppendIfMissing ¶
AppendIfMissing adds a string to a slice if the given string is not present
func Base64Decode ¶
func Base64Encode ¶
func DeriveKey ¶
func DeriveKey(password string, salt []byte, customParams ...Argon2Params) ([]byte, []byte)
func Difference ¶
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 ¶
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 ¶
EquivalentSlices checks whether the given string sets are equivalent, as in, they contain the same values.
func GlobbedStringsMatch ¶
GlobbedStringsMatch compares item to val with support for a leading and/or trailing wildcard '*' in item.
func IntFromPtr ¶
func MergeSlices ¶
MergeSlices adds an arbitrary number of slices together, uniquely
func ParseArbitraryStringSlice ¶
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 ¶
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 ¶
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 ¶
ParseKeyValues parses a comma separated list of `<key>=<value>` tuples into a map[string]string.
func ParseStringSlice ¶
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 RandString ¶
func RemoveDuplicates ¶
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 ¶
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 ¶
RemoveEmpty removes empty elements from a slice of strings
func StrFromPtr ¶
func StrListContains ¶
StrListContains looks for a string in a list of strings.
func StrListContainsGlob ¶
StrListContainsGlob looks for a string in a list of strings and allows globs.
func StrListDelete ¶
StrListDelete removes the first occurrence of the given item from the slice of strings if the item exists.
func StrListSubset ¶
StrListSubset checks if a given list is a subset of another set
func StrPtrOrNil ¶
func TrimStrings ¶
TrimStrings takes a slice of strings and returns a slice of strings with trimmed spaces
Types ¶
type Argon2Params ¶
type Cache ¶
type Cache[K comparable, V any] struct { // contains filtered or unexported fields }
func NewCache ¶
func NewCache[K comparable, V any]() *Cache[K, V]