code: func scanInconvertibleVal(marshalerUnmarshaler MarshalerUnmarshaler, src []byte, dest reflect.Value) error {
  	// Skip empty or nil fields
  	if len(src) == 0 || string(src) == "NULL" {
  		return nil
  	}
  	// TODO: account for json, msgpack or other custom fallbacks
  	if err := marshalerUnmarshaler.Unmarshal(src, dest.Addr().Interface()); err != nil {
  		return err
  	}
  	return nil
  }
docs: // scanIncovertibleVal unmarshals src into dest using the given
  // MarshalerUnmarshaler