evcc-io/util/request/json.go
2020-09-29 21:34:29 +02:00

26 lines
433 B
Go

package request
import (
"bytes"
"encoding/json"
"io"
)
// errorReader wraps an error with an io.Reader
type errorReader struct {
err error
}
func (r *errorReader) Read(p []byte) (int, error) {
return 0, r.err
}
// MarshalJSON marshals JSON into an io.Reader
func MarshalJSON(data interface{}) io.Reader {
body, err := json.Marshal(data)
if err != nil {
return &errorReader{err: err}
}
return bytes.NewReader(body)
}