podman
1/*
2* Copyright 2021 ByteDance Inc.
3*
4* Licensed under the Apache License, Version 2.0 (the "License");
5* you may not use this file except in compliance with the License.
6* You may obtain a copy of the License at
7*
8* http://www.apache.org/licenses/LICENSE-2.0
9*
10* Unless required by applicable law or agreed to in writing, software
11* distributed under the License is distributed on an "AS IS" BASIS,
12* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13* See the License for the specific language governing permissions and
14* limitations under the License.
15*/
16
17package decoder18
19import (20`encoding`21`encoding/json`22`unsafe`23
24`github.com/bytedance/sonic/internal/native`25`github.com/bytedance/sonic/internal/rt`26)
27
28func decodeTypedPointer(s string, i int, vt *rt.GoType, vp unsafe.Pointer, sb *_Stack, fv uint64) (int, error) {29if fn, err := findOrCompile(vt); err != nil {30return 0, err31} else {32rt.MoreStack(_FP_size + _VD_size + native.MaxFrameSize)33rt.StopProf()34ret, err := fn(s, i, vp, sb, fv, "", nil)35rt.StartProf()36return ret, err37}38}
39
40func decodeJsonUnmarshaler(vv interface{}, s string) error {41return vv.(json.Unmarshaler).UnmarshalJSON(rt.Str2Mem(s))42}
43
44func decodeTextUnmarshaler(vv interface{}, s string) error {45return vv.(encoding.TextUnmarshaler).UnmarshalText(rt.Str2Mem(s))46}
47