code: func (elt ZeroIsNullMeddler) PreWrite(field interface{}) (saveValue interface{}, err error) {
  	val := reflect.ValueOf(field)
  	switch val.Kind() {
  	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
  		if val.Int() == 0 {
  			return nil, nil
  		}
  	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
  		if val.Uint() == 0 {
  			return nil, nil
  		}
  	case reflect.Float32, reflect.Float64:
  		if val.Float() == 0 {
  			return nil, nil
  		}
  	case reflect.Complex64, reflect.Complex128:
  		if val.Complex() == 0 {
  			return nil, nil
  		}
  	case reflect.String:
  		if val.String() == "" {
  			return nil, nil
  		}
  	case reflect.Bool:
  		if !val.Bool() {
  			return nil, nil
  		}
  	default:
  		return nil, fmt.Errorf("ZeroIsNullMeddler.PreWrite: unknown struct field type: %T", field)
  	}
  
  	return field, nil
  }
docs: // PreWrite is called before an Insert or Update operation for fields that have the ZeroIsNullMeddler