123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package optdec
- import "math"
- /*
- Copied from sonic-rs
- // JSON Value Type
- const NULL: u64 = 0;
- const BOOL: u64 = 2;
- const FALSE: u64 = BOOL;
- const TRUE: u64 = (1 << 3) | BOOL;
- const NUMBER: u64 = 3;
- const UINT: u64 = NUMBER;
- const SINT: u64 = (1 << 3) | NUMBER;
- const REAL: u64 = (2 << 3) | NUMBER;
- const RAWNUMBER: u64 = (3 << 3) | NUMBER;
- const STRING: u64 = 4;
- const STRING_COMMON: u64 = STRING;
- const STRING_HASESCAPED: u64 = (1 << 3) | STRING;
- const OBJECT: u64 = 6;
- const ARRAY: u64 = 7;
- /// JSON Type Mask
- const POS_MASK: u64 = (!0) << 32;
- const POS_BITS: u64 = 32;
- const TYPE_MASK: u64 = 0xFF;
- const TYPE_BITS: u64 = 8;
- */
- const (
- // BasicType: 3 bits
- KNull = 0 // xxxxx000
- KBool = 2 // xxxxx010
- KNumber = 3 // xxxxx011
- KString = 4 // xxxxx100
- KRaw = 5 // xxxxx101
- KObject = 6 // xxxxx110
- KArray = 7 // xxxxx111
- // SubType: 2 bits
- KFalse = (0 << 3) | KBool // xxx00_010, 2
- KTrue = (1 << 3) | KBool // xxx01_010, 10
- KUint = (0 << 3) | KNumber // xxx00_011, 3
- KSint = (1 << 3) | KNumber // xxx01_011, 11
- KReal = (2 << 3) | KNumber // xxx10_011, 19
- KRawNumber = (3 << 3) | KNumber // xxx11_011, 27
- KStringCommon = KString // xxx00_100, 4
- KStringEscaped = (1 << 3) | KString // xxx01_100, 12
- )
- const (
- PosMask = math.MaxUint64 << 32
- PosBits = 32
- TypeMask = 0xFF
- TypeBits = 8
- ConLenMask = uint64(math.MaxUint32)
- ConLenBits = 32
- )
|