2
0
Fork 0
mirror of https://github.com/ii64/sonic.git synced 2026-06-21 00:46:43 +08:00
Commit graph

24 commits

Author SHA1 Message Date
liu
8639e93666
fix: validate on demand at first for GetByPath and NewRaw (#389)
* feat(ast): validate the demanded fields for ast Get

* fix: add more tests

* fix: check invalid path type

* fix(arm): make return error when skip invalid exponent

* fix(arm): skip object and array with validate

* fix: check input json in NewRaw

* fix: validate the path in native c

* chore: add licenses

* fix: panic when invalid path

* fix: add Get Full json benchmark

* fix(arm): use fast skip besides the ondemand fields

* chore codes

---------

Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
2023-03-22 19:23:44 +08:00
liu
02865de676
feat: repl invalid utf8 in serde by option (#357) 2023-02-10 18:55:27 +08:00
Yi Duan
e7ac2f25fc
feat: more complete function loader (#354)
* follow complete implementation of go symtab
* support go1.20
2023-02-08 14:35:00 +08:00
Yi Duan
67cffb15bd
feat:(ast) add fallback api on not-amd64 env (#341)
* feat:(ast) add  fallback api on `not-amd64` env

* test: add native `linux-arm64` CI

* opt: just skip number chars whne `decodeFloat64`

* fmt

* fix: check EOF
2023-01-03 19:47:55 +08:00
linuxsong
2866800519
optimize type assertion (#324) 2022-10-31 12:47:12 +08:00
Yi Duan
2138136685
feat: support more loose type-casting (#294)
* feat: support more losing type cast

* test: add loose casting tests

* format

* fmt: add license

* fmt: add comments
2022-09-08 16:31:38 +08:00
Yi Duan
cf08d54edd
feat:(ast) support cast null to empty value (#278) 2022-08-22 16:11:26 +08:00
Yi Duan
755c0252a9
feat: (ast) support casting V_STRING to number (#262) 2022-07-12 16:27:27 +08:00
Yi Duan
fc6f3743fd
fix:(ast) checkRaw() check if node is nil pointer first (#250) 2022-06-28 14:16:10 +08:00
Yi Duan
2e751bf5db
feat:(ast) Add more strict casting API (#249)
* feat:(ast) Add more strict API

* test: add cast test
2022-06-28 13:27:07 +08:00
Yi Duan
c3cb5de704
feat:(ast) support sorting node keys (#164)
* feat: ast.Node support ForEach() iteration (DFS)

Change-Id: Ia53f1db2814036e12b760dfbb7a21094a6abd541

* feat: support Node's key sorting

Change-Id: I0b93d9b4feada853fa2ca9f48277da71948a95be

* fmt

Change-Id: I1a53170959c08f1a32f02b0f163207254a87362c

* test: forbid `checkptr`

Change-Id: I6b34f74ee3bad883f515728300bf735a9e10b0d6

* fmt: add comments

Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-12-28 20:29:09 +08:00
Yi Duan
8405d84e31
feat: optimaze ast.Node API as container of generic values (#150)
* opt: only skip one value when call Iterator.HasNext()

* feat: V_NONE supports Set() and Add()

* feat: add node type V_ANY

* feat: ast.Node implements `json.Unmarshaler`

* fmt: use space instead of tab for indent

* feat: node V_ANY cast to Bool()\Int64()\Float64()\String()\Number()\Map()\Array()Interface()

* feat: V_NULL supports Set() and Add()

Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-12-09 15:43:51 +08:00
Yi Duan
3a25fcac4f
feat: add node.Load()/LoadAll() to support concurrency (#124)
Change-Id: Ic70b61c720a10d16cecc1f3d7c131d81ff6d4071

Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-10-28 17:56:09 +08:00
Yi Duan
fa5f5026d9
opt(ast): speed up api (#85)
- inline findkey()
- use std append() instead of runtime.memmove()

Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-09-03 20:05:52 +08:00
Yi Duan
1f13d31b5a
chore!: return error for scanning API (#81)
* chore!: return error for cast API

BREAKING CHANGE:
- Set()/Unset()/SetByIndex()/UnsetByIndex/Add() 
- Raw()/Bool()/Int64()/Float64()/Number()/Len()/Cap()
- Values()/Properties()/Map()/Array()/Interface()

Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-08-30 17:14:38 +08:00
Yi Duan
6aec2f3722
feat(ast): Node supports MarshalJson() (#84)
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-08-27 18:28:56 +08:00
Yi Duan
8c119dd72d
feat(ast): support Node.Unset() and optimize Node.Get() (#80)
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-08-24 13:23:55 +08:00
duanyi.aster
6b4022a19f fix: parser.ExportError() exceeds slice boundary 2021-07-20 16:47:59 +08:00
Yi Duan
e9b6634cac
feat: ast supports Node.Exists()/MapUseNode()/ArrayUseNode() (#19)
* feat: ast supports Node.Exists()/MapUseNode()/ArrayUseNode()

* jump table for swithcRawType

Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-06-24 16:37:32 +08:00
chenzhuoyu
b2fbad7b4c feat: rewrite generic decoder in Go, using Finite State Machine 2021-06-16 23:05:21 +08:00
chenzhuoyu
34fa8d64a8 feat: CPU feature detection support 2021-06-10 17:14:25 +08:00
Yi Duan
accee2e689
feat: support UseNumber for ast (#14)
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-06-09 15:58:27 +08:00
chenzhuoyu
66d6c789d4 chore: minor fixes 2021-06-02 20:12:04 +08:00
chenzhuoyu
fbe0828190 chore: make it open-source 2021-05-28 23:58:58 +08:00