Example #1
0
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])
		}
	}
}
Example #2
0
// 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)
}