mirror of
https://github.com/cloudflare/cloudflared.git
synced 2025-07-27 22:29:57 +00:00
TUN-5261: Collect QUIC metrics about RTT, packets and bytes transfered and log events at tracing level
This commit is contained in:
186
vendor/github.com/francoispqt/gojay/encode_string.go
generated
vendored
Normal file
186
vendor/github.com/francoispqt/gojay/encode_string.go
generated
vendored
Normal file
@@ -0,0 +1,186 @@
|
||||
package gojay
|
||||
|
||||
// EncodeString encodes a string to
|
||||
func (enc *Encoder) EncodeString(s string) error {
|
||||
if enc.isPooled == 1 {
|
||||
panic(InvalidUsagePooledEncoderError("Invalid usage of pooled encoder"))
|
||||
}
|
||||
_, _ = enc.encodeString(s)
|
||||
_, err := enc.Write()
|
||||
if err != nil {
|
||||
enc.err = err
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// encodeString encodes a string to
|
||||
func (enc *Encoder) encodeString(v string) ([]byte, error) {
|
||||
enc.writeByte('"')
|
||||
enc.writeStringEscape(v)
|
||||
enc.writeByte('"')
|
||||
return enc.buf, nil
|
||||
}
|
||||
|
||||
// AppendString appends a string to the buffer
|
||||
func (enc *Encoder) AppendString(v string) {
|
||||
enc.grow(len(v) + 2)
|
||||
enc.writeByte('"')
|
||||
enc.writeStringEscape(v)
|
||||
enc.writeByte('"')
|
||||
}
|
||||
|
||||
// AddString adds a string to be encoded, must be used inside a slice or array encoding (does not encode a key)
|
||||
func (enc *Encoder) AddString(v string) {
|
||||
enc.String(v)
|
||||
}
|
||||
|
||||
// AddStringOmitEmpty adds a string to be encoded or skips it if it is zero value.
|
||||
// Must be used inside a slice or array encoding (does not encode a key)
|
||||
func (enc *Encoder) AddStringOmitEmpty(v string) {
|
||||
enc.StringOmitEmpty(v)
|
||||
}
|
||||
|
||||
// AddStringNullEmpty adds a string to be encoded or skips it if it is zero value.
|
||||
// Must be used inside a slice or array encoding (does not encode a key)
|
||||
func (enc *Encoder) AddStringNullEmpty(v string) {
|
||||
enc.StringNullEmpty(v)
|
||||
}
|
||||
|
||||
// AddStringKey adds a string to be encoded, must be used inside an object as it will encode a key
|
||||
func (enc *Encoder) AddStringKey(key, v string) {
|
||||
enc.StringKey(key, v)
|
||||
}
|
||||
|
||||
// AddStringKeyOmitEmpty adds a string to be encoded or skips it if it is zero value.
|
||||
// Must be used inside an object as it will encode a key
|
||||
func (enc *Encoder) AddStringKeyOmitEmpty(key, v string) {
|
||||
enc.StringKeyOmitEmpty(key, v)
|
||||
}
|
||||
|
||||
// AddStringKeyNullEmpty adds a string to be encoded or skips it if it is zero value.
|
||||
// Must be used inside an object as it will encode a key
|
||||
func (enc *Encoder) AddStringKeyNullEmpty(key, v string) {
|
||||
enc.StringKeyNullEmpty(key, v)
|
||||
}
|
||||
|
||||
// String adds a string to be encoded, must be used inside a slice or array encoding (does not encode a key)
|
||||
func (enc *Encoder) String(v string) {
|
||||
enc.grow(len(v) + 4)
|
||||
r := enc.getPreviousRune()
|
||||
if r != '[' {
|
||||
enc.writeTwoBytes(',', '"')
|
||||
} else {
|
||||
enc.writeByte('"')
|
||||
}
|
||||
enc.writeStringEscape(v)
|
||||
enc.writeByte('"')
|
||||
}
|
||||
|
||||
// StringOmitEmpty adds a string to be encoded or skips it if it is zero value.
|
||||
// Must be used inside a slice or array encoding (does not encode a key)
|
||||
func (enc *Encoder) StringOmitEmpty(v string) {
|
||||
if v == "" {
|
||||
return
|
||||
}
|
||||
r := enc.getPreviousRune()
|
||||
if r != '[' {
|
||||
enc.writeTwoBytes(',', '"')
|
||||
} else {
|
||||
enc.writeByte('"')
|
||||
}
|
||||
enc.writeStringEscape(v)
|
||||
enc.writeByte('"')
|
||||
}
|
||||
|
||||
// StringNullEmpty adds a string to be encoded or skips it if it is zero value.
|
||||
// Must be used inside a slice or array encoding (does not encode a key)
|
||||
func (enc *Encoder) StringNullEmpty(v string) {
|
||||
r := enc.getPreviousRune()
|
||||
if v == "" {
|
||||
if r != '[' {
|
||||
enc.writeByte(',')
|
||||
enc.writeBytes(nullBytes)
|
||||
} else {
|
||||
enc.writeBytes(nullBytes)
|
||||
}
|
||||
return
|
||||
}
|
||||
if r != '[' {
|
||||
enc.writeTwoBytes(',', '"')
|
||||
} else {
|
||||
enc.writeByte('"')
|
||||
}
|
||||
enc.writeStringEscape(v)
|
||||
enc.writeByte('"')
|
||||
}
|
||||
|
||||
// StringKey adds a string to be encoded, must be used inside an object as it will encode a key
|
||||
func (enc *Encoder) StringKey(key, v string) {
|
||||
if enc.hasKeys {
|
||||
if !enc.keyExists(key) {
|
||||
return
|
||||
}
|
||||
}
|
||||
enc.grow(len(key) + len(v) + 5)
|
||||
r := enc.getPreviousRune()
|
||||
if r != '{' {
|
||||
enc.writeTwoBytes(',', '"')
|
||||
} else {
|
||||
enc.writeByte('"')
|
||||
}
|
||||
enc.writeStringEscape(key)
|
||||
enc.writeBytes(objKeyStr)
|
||||
enc.writeStringEscape(v)
|
||||
enc.writeByte('"')
|
||||
}
|
||||
|
||||
// StringKeyOmitEmpty adds a string to be encoded or skips it if it is zero value.
|
||||
// Must be used inside an object as it will encode a key
|
||||
func (enc *Encoder) StringKeyOmitEmpty(key, v string) {
|
||||
if enc.hasKeys {
|
||||
if !enc.keyExists(key) {
|
||||
return
|
||||
}
|
||||
}
|
||||
if v == "" {
|
||||
return
|
||||
}
|
||||
enc.grow(len(key) + len(v) + 5)
|
||||
r := enc.getPreviousRune()
|
||||
if r != '{' {
|
||||
enc.writeTwoBytes(',', '"')
|
||||
} else {
|
||||
enc.writeByte('"')
|
||||
}
|
||||
enc.writeStringEscape(key)
|
||||
enc.writeBytes(objKeyStr)
|
||||
enc.writeStringEscape(v)
|
||||
enc.writeByte('"')
|
||||
}
|
||||
|
||||
// StringKeyNullEmpty adds a string to be encoded or skips it if it is zero value.
|
||||
// Must be used inside an object as it will encode a key
|
||||
func (enc *Encoder) StringKeyNullEmpty(key, v string) {
|
||||
if enc.hasKeys {
|
||||
if !enc.keyExists(key) {
|
||||
return
|
||||
}
|
||||
}
|
||||
enc.grow(len(key) + len(v) + 5)
|
||||
r := enc.getPreviousRune()
|
||||
if r != '{' {
|
||||
enc.writeTwoBytes(',', '"')
|
||||
} else {
|
||||
enc.writeByte('"')
|
||||
}
|
||||
enc.writeStringEscape(key)
|
||||
enc.writeBytes(objKey)
|
||||
if v == "" {
|
||||
enc.writeBytes(nullBytes)
|
||||
return
|
||||
}
|
||||
enc.writeByte('"')
|
||||
enc.writeStringEscape(v)
|
||||
enc.writeByte('"')
|
||||
}
|
Reference in New Issue
Block a user