Something went wrong. Try again.
sloproxy
Something went wrong. Try again.
837 B · 27 lines
Go
at main
12345678910111213141516171819202122232425262728package util
import ( "unsafe"
"github.com/tidwall/gjson")
// GetGJSONBytesNoCopy returns a GJSON result that may reference data directly.// Callers must not retain the result or mutate data while using it.func GetGJSONBytesNoCopy(data []byte, path string) gjson.Result { if len(data) == 0 { return gjson.Result{} } return gjson.Get(unsafe.String(unsafe.SliceData(data), len(data)), path)}
// ParseGJSONBytesNoCopy parses data into a GJSON result that references data// directly. gjson.ParseBytes copies the whole document, which is prohibitive// for multi-megabyte payloads. Callers must not retain the result or mutate// data while using it.func ParseGJSONBytesNoCopy(data []byte) gjson.Result { if len(data) == 0 { return gjson.Result{} } return gjson.Parse(unsafe.String(unsafe.SliceData(data), len(data)))}