Merge pull request #31 from hectorj/handle-struct

Use struct directly if type matches
diff --git a/mapstructure.go b/mapstructure.go
index 8886d34..d48ac95 100644
--- a/mapstructure.go
+++ b/mapstructure.go
@@ -553,6 +553,12 @@
 
 func (d *Decoder) decodeStruct(name string, data interface{}, val reflect.Value) error {
 	dataVal := reflect.Indirect(reflect.ValueOf(data))
+
+	if dataVal.Type() == val.Type() {
+		val.Set(dataVal)
+		return nil
+	}
+
 	dataValKind := dataVal.Kind()
 	if dataValKind != reflect.Map {
 		return fmt.Errorf("'%s' expected a map, got '%s'", name, dataValKind)