You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
996 B
51 lines
996 B
// +build !binary_log |
|
|
|
package zerolog |
|
|
|
// encoder_json.go file contains bindings to generate |
|
// JSON encoded byte stream. |
|
|
|
import ( |
|
"encoding/base64" |
|
"github.com/rs/zerolog/internal/json" |
|
) |
|
|
|
var ( |
|
_ encoder = (*json.Encoder)(nil) |
|
|
|
enc = json.Encoder{} |
|
) |
|
|
|
func init() { |
|
// using closure to reflect the changes at runtime. |
|
json.JSONMarshalFunc = func(v interface{}) ([]byte, error) { |
|
return InterfaceMarshalFunc(v) |
|
} |
|
} |
|
|
|
func appendJSON(dst []byte, j []byte) []byte { |
|
return append(dst, j...) |
|
} |
|
func appendCBOR(dst []byte, cbor []byte) []byte { |
|
dst = append(dst, []byte("\"data:application/cbor;base64,")...) |
|
l := len(dst) |
|
enc := base64.StdEncoding |
|
n := enc.EncodedLen(len(cbor)) |
|
for i := 0; i < n; i++ { |
|
dst = append(dst, '.') |
|
} |
|
enc.Encode(dst[l:], cbor) |
|
return append(dst, '"') |
|
} |
|
|
|
func decodeIfBinaryToString(in []byte) string { |
|
return string(in) |
|
} |
|
|
|
func decodeObjectToStr(in []byte) string { |
|
return string(in) |
|
} |
|
|
|
func decodeIfBinaryToBytes(in []byte) []byte { |
|
return in |
|
}
|
|
|