code: func ObjectContentToType(o types.ObjectContent) (interface{}, error) {
  	// Expect no properties in the missing set
  	for _, p := range o.MissingSet {
  		if ignoreMissingProperty(o.Obj, p) {
  			continue
  		}
  
  		return nil, soap.WrapVimFault(p.Fault.Fault)
  	}
  
  	ti := typeInfoForType(o.Obj.Type)
  	v, err := ti.LoadFromObjectContent(o)
  	if err != nil {
  		return nil, err
  	}
  
  	return v.Elem().Interface(), nil
  }
docs: // ObjectContentToType loads an ObjectContent value into the value it
  // represents. If the ObjectContent value has a non-empty 'MissingSet' field,
  // it returns the first fault it finds there as error. If the 'MissingSet'
  // field is empty, it returns a pointer to a reflect.Value. It handles contain
  // nested properties, such as 'guest.ipAddress' or 'config.hardware'.