Skip to content

Commit

Permalink
Merge pull request #65 from nb-ohad/driver-reconcile
Browse files Browse the repository at this point in the history
Utils: fix serialization cases in MapToString util
  • Loading branch information
Madhu-1 authored Jul 30, 2024
2 parents 47babfb + 62edf5c commit cd73054
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions internal/utils/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,19 +86,28 @@ func MapSlice[T, K any](in []T, mapper func(item T) K) []K {
return out
}

// maptostring serializes the provided map into a a string.
// MapToString serializes the provided map into a a string.
func MapToString[K, T ~string](m map[K]T, keyValueSeperator, itemSeperator string) string {
if len(m) == 0 {
return ""
}

// An item separator is added before each item. For the first item we want
// the separator to be an empty string
itemSep := ""
bldr := strings.Builder{}
bldr.WriteString("--kernelmountoptions=")
for key, value := range m {
bldr.WriteString(itemSep)
bldr.WriteString(string(key))
bldr.WriteString(keyValueSeperator)
bldr.WriteString(string(value))
bldr.WriteString(itemSeperator)

// Skip value serialization if it evaluates to an empty string
valAsString := string(value)
if valAsString != "" {
bldr.WriteString(keyValueSeperator)
bldr.WriteString(valAsString)
}

itemSep = itemSeperator
}
return bldr.String()
}
Expand Down

0 comments on commit cd73054

Please sign in to comment.