diff options
Diffstat (limited to 'vendor/github.com/bytedance/sonic/unquote/unquote.go')
-rw-r--r-- | vendor/github.com/bytedance/sonic/unquote/unquote.go | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/vendor/github.com/bytedance/sonic/unquote/unquote.go b/vendor/github.com/bytedance/sonic/unquote/unquote.go deleted file mode 100644 index 29b2fcde8..000000000 --- a/vendor/github.com/bytedance/sonic/unquote/unquote.go +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2021 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package unquote - -import ( - `unsafe` - `runtime` - - `github.com/bytedance/sonic/internal/native` - `github.com/bytedance/sonic/internal/native/types` - `github.com/bytedance/sonic/internal/rt` -) - -// String unescapes an escaped string (not including `"` at beginning and end) -// It validates invalid UTF8 and replace with `\ufffd` -func String(s string) (ret string, err types.ParsingError) { - mm := make([]byte, 0, len(s)) - err = intoBytesUnsafe(s, &mm, true) - ret = rt.Mem2Str(mm) - return -} - -// IntoBytes is same with String besides it output result into a buffer m -func IntoBytes(s string, m *[]byte) types.ParsingError { - if cap(*m) < len(s) { - return types.ERR_EOF - } else { - return intoBytesUnsafe(s, m, true) - } -} - -// String unescapes an escaped string (not including `"` at beginning and end) -// - replace enables replacing invalid utf8 escaped char with `\uffd` -func _String(s string, replace bool) (ret string, err error) { - mm := make([]byte, 0, len(s)) - err = intoBytesUnsafe(s, &mm, replace) - ret = rt.Mem2Str(mm) - return -} - -func intoBytesUnsafe(s string, m *[]byte, replace bool) types.ParsingError { - pos := -1 - slv := (*rt.GoSlice)(unsafe.Pointer(m)) - str := (*rt.GoString)(unsafe.Pointer(&s)) - - flags := uint64(0) - if replace { - /* unquote as the default configuration, replace invalid unicode with \ufffd */ - flags |= types.F_UNICODE_REPLACE - } - - ret := native.Unquote(str.Ptr, str.Len, slv.Ptr, &pos, flags) - - /* check for errors */ - if ret < 0 { - return types.ParsingError(-ret) - } - - /* update the length */ - slv.Len = ret - runtime.KeepAlive(s) - return 0 -} - - - |