func main() { testStruct := FooStruct{"test string foo", "test string bar", 10} if testMap, err := destruct.MapString(testStruct); err == nil { for k := range testMap { fmt.Printf("%s: %s\n", k, testMap[k]) } } }
// InterpolateStruct parses %{foo} escapes in a string from a struct. func InterpolateStruct(src string, mapping interface{}) (string, error) { if mapping == nil { return "", ErrNilArgument } vMap := reflect.ValueOf(mapping) if vMap.Kind() != reflect.Struct { return "", ErrNotSupported } m, err := destruct.MapString(mapping) if err != nil { return "", err } return Interpolate(src, m) }