27 lines
540 B
Go
27 lines
540 B
Go
package proxyproto
|
|
|
|
import (
|
|
"errors"
|
|
)
|
|
|
|
// Raw type used by Centrifugo as type for fields in structs which value
|
|
// we want to left untouched.
|
|
type Raw []byte
|
|
|
|
// MarshalJSON returns *r as the JSON encoding of r.
|
|
func (r Raw) MarshalJSON() ([]byte, error) {
|
|
if r == nil {
|
|
return []byte("null"), nil
|
|
}
|
|
return r, nil
|
|
}
|
|
|
|
// UnmarshalJSON sets *r to a copy of data.
|
|
func (r *Raw) UnmarshalJSON(data []byte) error {
|
|
if r == nil {
|
|
return errors.New("raw: UnmarshalJSON on nil pointer")
|
|
}
|
|
*r = append((*r)[0:0], data...)
|
|
return nil
|
|
}
|