title: Implement Scan and Value functions in golang
body: <p>I am trying to store some golang objects in SQL database and have implemented the scanner and value interface as follows:</p>
  <pre><code>func (attr *myStruct) Scan(src interface{}) error {
      switch v := src.(type) {
      case string:
          return json.Unmarshal([]byte(v), attr)
      case []byte:
          return json.Unmarshal(v, attr)
      }
      return fmt.Errorf(&quot;cannot convert %T to My struct&quot;, src)
  }
  
  //nolint:hugeParam
  func (attr mystruct) Value() (driver.Value, error) {
      return json.Marshal(attr)
  }
  
  </code></pre>
  <p>Is there a way that I can pass the parameter to the <code>Value()</code> function by pointers, as I am getting a <code>HugeParam</code> error that the attr passed to the <code>Value()</code> function is too big, when trying to convert the data back to my struct.</p>
  <p>Any advise is appreciated, thanks!</p>
  <p>Update: I am trying to solve this issue by marking a nolint to ignore the huge param but the error still persists. This is the error msg:</p>
  <pre><code>golangci-lint run --deadline 300s
  
  feedback-handler-test_1_fdc66eade9d0 | level=warning msg=&quot;[runner] The linter 'interfacer' is deprecated (since v1.38.0) due to: The repository of the linter has been archived by the owner. &quot;
  
  feedback-handler-test_1_fdc66eade9d0 | level=warning msg=&quot;[runner/nolint] Found unknown linters in //nolint directives: gocritic:hugeparam&quot;
  
  feedback-handler-test_1_fdc66eade9d0 | internal/app/domain/entity/feedbacks.go:61:7: hugeParam: attr is heavy (320 bytes); consider passing it by pointer (gocritic)
  </code></pre>