mirror of
https://github.com/cloudflare/cloudflared.git
synced 2025-07-27 22:19:58 +00:00
TUN-5261: Collect QUIC metrics about RTT, packets and bytes transfered and log events at tracing level
This commit is contained in:
93
vendor/github.com/francoispqt/gojay/encode_embedded_json.go
generated
vendored
Normal file
93
vendor/github.com/francoispqt/gojay/encode_embedded_json.go
generated
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
package gojay
|
||||
|
||||
// EncodeEmbeddedJSON encodes an embedded JSON.
|
||||
// is basically sets the internal buf as the value pointed by v and calls the io.Writer.Write()
|
||||
func (enc *Encoder) EncodeEmbeddedJSON(v *EmbeddedJSON) error {
|
||||
if enc.isPooled == 1 {
|
||||
panic(InvalidUsagePooledEncoderError("Invalid usage of pooled encoder"))
|
||||
}
|
||||
enc.buf = *v
|
||||
_, err := enc.Write()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (enc *Encoder) encodeEmbeddedJSON(v *EmbeddedJSON) ([]byte, error) {
|
||||
enc.writeBytes(*v)
|
||||
return enc.buf, nil
|
||||
}
|
||||
|
||||
// AddEmbeddedJSON adds an EmbeddedJSON to be encoded.
|
||||
//
|
||||
// It basically blindly writes the bytes to the final buffer. Therefore,
|
||||
// it expects the JSON to be of proper format.
|
||||
func (enc *Encoder) AddEmbeddedJSON(v *EmbeddedJSON) {
|
||||
enc.grow(len(*v) + 4)
|
||||
r := enc.getPreviousRune()
|
||||
if r != '[' {
|
||||
enc.writeByte(',')
|
||||
}
|
||||
enc.writeBytes(*v)
|
||||
}
|
||||
|
||||
// AddEmbeddedJSONOmitEmpty adds an EmbeddedJSON to be encoded or skips it if nil pointer or empty.
|
||||
//
|
||||
// It basically blindly writes the bytes to the final buffer. Therefore,
|
||||
// it expects the JSON to be of proper format.
|
||||
func (enc *Encoder) AddEmbeddedJSONOmitEmpty(v *EmbeddedJSON) {
|
||||
if v == nil || len(*v) == 0 {
|
||||
return
|
||||
}
|
||||
r := enc.getPreviousRune()
|
||||
if r != '[' {
|
||||
enc.writeByte(',')
|
||||
}
|
||||
enc.writeBytes(*v)
|
||||
}
|
||||
|
||||
// AddEmbeddedJSONKey adds an EmbeddedJSON and a key to be encoded.
|
||||
//
|
||||
// It basically blindly writes the bytes to the final buffer. Therefore,
|
||||
// it expects the JSON to be of proper format.
|
||||
func (enc *Encoder) AddEmbeddedJSONKey(key string, v *EmbeddedJSON) {
|
||||
if enc.hasKeys {
|
||||
if !enc.keyExists(key) {
|
||||
return
|
||||
}
|
||||
}
|
||||
enc.grow(len(key) + len(*v) + 5)
|
||||
r := enc.getPreviousRune()
|
||||
if r != '{' {
|
||||
enc.writeByte(',')
|
||||
}
|
||||
enc.writeByte('"')
|
||||
enc.writeStringEscape(key)
|
||||
enc.writeBytes(objKey)
|
||||
enc.writeBytes(*v)
|
||||
}
|
||||
|
||||
// AddEmbeddedJSONKeyOmitEmpty adds an EmbeddedJSON and a key to be encoded or skips it if nil pointer or empty.
|
||||
//
|
||||
// It basically blindly writes the bytes to the final buffer. Therefore,
|
||||
// it expects the JSON to be of proper format.
|
||||
func (enc *Encoder) AddEmbeddedJSONKeyOmitEmpty(key string, v *EmbeddedJSON) {
|
||||
if enc.hasKeys {
|
||||
if !enc.keyExists(key) {
|
||||
return
|
||||
}
|
||||
}
|
||||
if v == nil || len(*v) == 0 {
|
||||
return
|
||||
}
|
||||
enc.grow(len(key) + len(*v) + 5)
|
||||
r := enc.getPreviousRune()
|
||||
if r != '{' {
|
||||
enc.writeByte(',')
|
||||
}
|
||||
enc.writeByte('"')
|
||||
enc.writeStringEscape(key)
|
||||
enc.writeBytes(objKey)
|
||||
enc.writeBytes(*v)
|
||||
}
|
Reference in New Issue
Block a user