Versions in this module Expand all Collapse all v1 v1.0.3 Apr 1, 2024 v1.0.2 Apr 1, 2024 v1.0.1 Apr 1, 2024 v0 v0.1.2 Mar 3, 2023 v0.1.1 Mar 3, 2023 Changes in this version type OptionFlag + const IngoreOmitEmpty + const NilMapAsEmptyOption v0.1.0 Mar 3, 2023 Changes in this version + const StartDetectingCyclesAfter + var Marshal func(interface{}) ([]byte, error) + var Unmarshal func([]byte, interface{}) error + func AppendBool(_ *RuntimeContext, b []byte, v bool) []byte + func AppendByteSlice(_ *RuntimeContext, b []byte, src []byte) []byte + func AppendComma(_ *RuntimeContext, b []byte) []byte + func AppendCommaIndent(_ *RuntimeContext, b []byte) []byte + func AppendFloat32(_ *RuntimeContext, b []byte, v float32) []byte + func AppendFloat64(_ *RuntimeContext, b []byte, v float64) []byte + func AppendIndent(ctx *RuntimeContext, b []byte, indent uint32) []byte + func AppendInt(_ *RuntimeContext, out []byte, p uintptr, code *Opcode) []byte + func AppendMarshalJSON(ctx *RuntimeContext, code *Opcode, b []byte, v interface{}) ([]byte, error) + func AppendMarshalJSONIndent(ctx *RuntimeContext, code *Opcode, b []byte, v interface{}) ([]byte, error) + func AppendMarshalText(ctx *RuntimeContext, code *Opcode, b []byte, v interface{}) ([]byte, error) + func AppendMarshalTextIndent(ctx *RuntimeContext, code *Opcode, b []byte, v interface{}) ([]byte, error) + func AppendNull(_ *RuntimeContext, b []byte) []byte + func AppendNumber(_ *RuntimeContext, b []byte, n json.Number) ([]byte, error) + func AppendString(ctx *RuntimeContext, buf []byte, s string) []byte + func AppendStructEnd(_ *RuntimeContext, b []byte) []byte + func AppendStructEndIndent(ctx *RuntimeContext, code *Opcode, b []byte) []byte + func AppendUint(_ *RuntimeContext, out []byte, p uintptr, code *Opcode) []byte + func Compact(buf *bytes.Buffer, src []byte, escape bool) error + func ErrMarshalerWithCode(code *Opcode, err error) *errors.MarshalerError + func ErrUnsupportedFloat(v float64) *errors.UnsupportedValueError + func ErrUnsupportedValue(code *Opcode, ptr uintptr) *errors.UnsupportedValueError + func Indent(buf *bytes.Buffer, src []byte, prefix, indentStr string) error + func IsNilForMarshaler(v interface{}) bool + func Load(base uintptr, idx uintptr) uintptr + func LoadNPtr(base uintptr, idx uintptr, ptrNum int) uintptr + func MapIterInit(mapType *runtime.Type, m unsafe.Pointer, it *mapIter) + func MapIterKey(it *mapIter) unsafe.Pointer + func MapIterNext(it *mapIter) + func MapIterValue(it *mapIter) unsafe.Pointer + func MapLen(m unsafe.Pointer) int + func PtrToBool(p uintptr) bool + func PtrToBytes(p uintptr) []byte + func PtrToFloat32(p uintptr) float32 + func PtrToFloat64(p uintptr) float64 + func PtrToInterface(code *Opcode, p uintptr) interface + func PtrToNPtr(p uintptr, ptrNum int) uintptr + func PtrToNumber(p uintptr) json.Number + func PtrToPtr(p uintptr) uintptr + func PtrToSlice(p uintptr) *runtime.SliceHeader + func PtrToString(p uintptr) string + func PtrToUint64(p uintptr) uint64 + func PtrToUnsafePtr(p uintptr) unsafe.Pointer + func ReleaseMapContext(c *MapContext) + func ReleaseRuntimeContext(ctx *RuntimeContext) + func SetFieldQueryToContext(ctx context.Context, query *FieldQuery) context.Context + func Store(base uintptr, idx uintptr, p uintptr) + type AnonymousCode interface + ToAnonymousOpcode func(*compileContext) Opcodes + type ArrayCode struct + func (c *ArrayCode) Filter(_ *FieldQuery) Code + func (c *ArrayCode) Kind() CodeKind + func (c *ArrayCode) ToOpcode(ctx *compileContext) Opcodes + type BoolCode struct + func (c *BoolCode) Filter(_ *FieldQuery) Code + func (c *BoolCode) Kind() CodeKind + func (c *BoolCode) ToOpcode(ctx *compileContext) Opcodes + type BytesCode struct + func (c *BytesCode) Filter(_ *FieldQuery) Code + func (c *BytesCode) Kind() CodeKind + func (c *BytesCode) ToOpcode(ctx *compileContext) Opcodes + type Code interface + Filter func(*FieldQuery) Code + Kind func() CodeKind + ToOpcode func(*compileContext) Opcodes + type CodeKind int + const CodeKindArray + const CodeKindBool + const CodeKindBytes + const CodeKindFloat + const CodeKindInt + const CodeKindInterface + const CodeKindMap + const CodeKindMarshalJSON + const CodeKindMarshalText + const CodeKindPtr + const CodeKindRecursive + const CodeKindSlice + const CodeKindString + const CodeKindStruct + const CodeKindUint + type CodeType int + const CodeArrayElem + const CodeArrayHead + const CodeMapEnd + const CodeMapHead + const CodeMapKey + const CodeMapValue + const CodeOp + const CodeRecursive + const CodeSliceElem + const CodeSliceHead + const CodeStructEnd + const CodeStructField + type ColorFormat = EncodeFormat + type ColorScheme = EncodeFormatScheme + type CompiledCode struct + Code *Opcode + CurLen uintptr + Linked bool + NextLen uintptr + type Compiler struct + type EncodeFormat struct + Footer string + Header string + type EncodeFormatScheme struct + Binary EncodeFormat + Bool EncodeFormat + Float EncodeFormat + Int EncodeFormat + Null EncodeFormat + ObjectKey EncodeFormat + String EncodeFormat + Uint EncodeFormat + type FieldQuery struct + Fields []*FieldQuery + Name string + func FieldQueryFromContext(ctx context.Context) *FieldQuery + func (q *FieldQuery) Hash() string + func (q *FieldQuery) MarshalJSON() ([]byte, error) + func (q *FieldQuery) QueryString() (FieldQueryString, error) + type FieldQueryString string + func (s FieldQueryString) Build() (*FieldQuery, error) + type FloatCode struct + func (c *FloatCode) Filter(_ *FieldQuery) Code + func (c *FloatCode) Kind() CodeKind + func (c *FloatCode) ToOpcode(ctx *compileContext) Opcodes + type IntCode struct + func (c *IntCode) Filter(_ *FieldQuery) Code + func (c *IntCode) Kind() CodeKind + func (c *IntCode) ToOpcode(ctx *compileContext) Opcodes + type InterfaceCode struct + func (c *InterfaceCode) Filter(query *FieldQuery) Code + func (c *InterfaceCode) Kind() CodeKind + func (c *InterfaceCode) ToOpcode(ctx *compileContext) Opcodes + type MapCode struct + func (c *MapCode) Filter(_ *FieldQuery) Code + func (c *MapCode) Kind() CodeKind + func (c *MapCode) ToOpcode(ctx *compileContext) Opcodes + type MapContext struct + Buf []byte + First int + Idx int + Iter mapIter + Len int + Slice *Mapslice + Start int + func NewMapContext(mapLen int, unorderedMap bool) *MapContext + type MapItem struct + Key []byte + Value []byte + type Mapslice struct + Items []MapItem + func (m *Mapslice) Len() int + func (m *Mapslice) Less(i, j int) bool + func (m *Mapslice) Swap(i, j int) + type MarshalJSONCode struct + func (c *MarshalJSONCode) Filter(query *FieldQuery) Code + func (c *MarshalJSONCode) Kind() CodeKind + func (c *MarshalJSONCode) ToOpcode(ctx *compileContext) Opcodes + type MarshalTextCode struct + func (c *MarshalTextCode) Filter(query *FieldQuery) Code + func (c *MarshalTextCode) Kind() CodeKind + func (c *MarshalTextCode) ToOpcode(ctx *compileContext) Opcodes + type OpFlags uint16 + const AddrForMarshalerFlags + const AnonymousHeadFlags + const AnonymousKeyFlags + const IndirectFlags + const IsNextOpPtrTypeFlags + const IsNilableTypeFlags + const IsTaggedKeyFlags + const MarshalerContextFlags + const NilCheckFlags + const NonEmptyInterfaceFlags + type OpType uint16 + const OpArray + const OpArrayElem + const OpArrayEnd + const OpArrayPtr + const OpBool + const OpBoolPtr + const OpBoolPtrString + const OpBoolString + const OpBytes + const OpBytesPtr + const OpEnd + const OpFloat32 + const OpFloat32Ptr + const OpFloat32PtrString + const OpFloat32String + const OpFloat64 + const OpFloat64Ptr + const OpFloat64PtrString + const OpFloat64String + const OpInt + const OpIntPtr + const OpIntPtrString + const OpIntString + const OpInterface + const OpInterfaceEnd + const OpInterfacePtr + const OpMap + const OpMapEnd + const OpMapKey + const OpMapPtr + const OpMapValue + const OpMarshalJSON + const OpMarshalJSONPtr + const OpMarshalText + const OpMarshalTextPtr + const OpNumber + const OpNumberPtr + const OpNumberPtrString + const OpNumberString + const OpPtr + const OpRecursive + const OpRecursiveEnd + const OpRecursivePtr + const OpSlice + const OpSliceElem + const OpSliceEnd + const OpSlicePtr + const OpString + const OpStringPtr + const OpStringPtrString + const OpStringString + const OpStruct + const OpStructEnd + const OpStructEndArray + const OpStructEndArrayPtr + const OpStructEndBool + const OpStructEndBoolPtr + const OpStructEndBoolPtrString + const OpStructEndBoolString + const OpStructEndBytes + const OpStructEndBytesPtr + const OpStructEndFloat32 + const OpStructEndFloat32Ptr + const OpStructEndFloat32PtrString + const OpStructEndFloat32String + const OpStructEndFloat64 + const OpStructEndFloat64Ptr + const OpStructEndFloat64PtrString + const OpStructEndFloat64String + const OpStructEndInt + const OpStructEndIntPtr + const OpStructEndIntPtrString + const OpStructEndIntString + const OpStructEndInterfacePtr + const OpStructEndMap + const OpStructEndMapPtr + const OpStructEndMarshalJSON + const OpStructEndMarshalJSONPtr + const OpStructEndMarshalText + const OpStructEndMarshalTextPtr + const OpStructEndNumber + const OpStructEndNumberPtr + const OpStructEndNumberPtrString + const OpStructEndNumberString + const OpStructEndOmitEmpty + const OpStructEndOmitEmptyArray + const OpStructEndOmitEmptyArrayPtr + const OpStructEndOmitEmptyBool + const OpStructEndOmitEmptyBoolPtr + const OpStructEndOmitEmptyBoolPtrString + const OpStructEndOmitEmptyBoolString + const OpStructEndOmitEmptyBytes + const OpStructEndOmitEmptyBytesPtr + const OpStructEndOmitEmptyFloat32 + const OpStructEndOmitEmptyFloat32Ptr + const OpStructEndOmitEmptyFloat32PtrString + const OpStructEndOmitEmptyFloat32String + const OpStructEndOmitEmptyFloat64 + const OpStructEndOmitEmptyFloat64Ptr + const OpStructEndOmitEmptyFloat64PtrString + const OpStructEndOmitEmptyFloat64String + const OpStructEndOmitEmptyInt + const OpStructEndOmitEmptyIntPtr + const OpStructEndOmitEmptyIntPtrString + const OpStructEndOmitEmptyIntString + const OpStructEndOmitEmptyInterfacePtr + const OpStructEndOmitEmptyMap + const OpStructEndOmitEmptyMapPtr + const OpStructEndOmitEmptyMarshalJSON + const OpStructEndOmitEmptyMarshalJSONPtr + const OpStructEndOmitEmptyMarshalText + const OpStructEndOmitEmptyMarshalTextPtr + const OpStructEndOmitEmptyNumber + const OpStructEndOmitEmptyNumberPtr + const OpStructEndOmitEmptyNumberPtrString + const OpStructEndOmitEmptyNumberString + const OpStructEndOmitEmptySlice + const OpStructEndOmitEmptySlicePtr + const OpStructEndOmitEmptyString + const OpStructEndOmitEmptyStringPtr + const OpStructEndOmitEmptyStringPtrString + const OpStructEndOmitEmptyStringString + const OpStructEndOmitEmptyStruct + const OpStructEndOmitEmptyUint + const OpStructEndOmitEmptyUintPtr + const OpStructEndOmitEmptyUintPtrString + const OpStructEndOmitEmptyUintString + const OpStructEndSlice + const OpStructEndSlicePtr + const OpStructEndString + const OpStructEndStringPtr + const OpStructEndStringPtrString + const OpStructEndStringString + const OpStructEndStruct + const OpStructEndUint + const OpStructEndUintPtr + const OpStructEndUintPtrString + const OpStructEndUintString + const OpStructField + const OpStructFieldArray + const OpStructFieldArrayPtr + const OpStructFieldBool + const OpStructFieldBoolPtr + const OpStructFieldBoolPtrString + const OpStructFieldBoolString + const OpStructFieldBytes + const OpStructFieldBytesPtr + const OpStructFieldFloat32 + const OpStructFieldFloat32Ptr + const OpStructFieldFloat32PtrString + const OpStructFieldFloat32String + const OpStructFieldFloat64 + const OpStructFieldFloat64Ptr + const OpStructFieldFloat64PtrString + const OpStructFieldFloat64String + const OpStructFieldInt + const OpStructFieldIntPtr + const OpStructFieldIntPtrString + const OpStructFieldIntString + const OpStructFieldInterfacePtr + const OpStructFieldMap + const OpStructFieldMapPtr + const OpStructFieldMarshalJSON + const OpStructFieldMarshalJSONPtr + const OpStructFieldMarshalText + const OpStructFieldMarshalTextPtr + const OpStructFieldNumber + const OpStructFieldNumberPtr + const OpStructFieldNumberPtrString + const OpStructFieldNumberString + const OpStructFieldOmitEmpty + const OpStructFieldOmitEmptyArray + const OpStructFieldOmitEmptyArrayPtr + const OpStructFieldOmitEmptyBool + const OpStructFieldOmitEmptyBoolPtr + const OpStructFieldOmitEmptyBoolPtrString + const OpStructFieldOmitEmptyBoolString + const OpStructFieldOmitEmptyBytes + const OpStructFieldOmitEmptyBytesPtr + const OpStructFieldOmitEmptyFloat32 + const OpStructFieldOmitEmptyFloat32Ptr + const OpStructFieldOmitEmptyFloat32PtrString + const OpStructFieldOmitEmptyFloat32String + const OpStructFieldOmitEmptyFloat64 + const OpStructFieldOmitEmptyFloat64Ptr + const OpStructFieldOmitEmptyFloat64PtrString + const OpStructFieldOmitEmptyFloat64String + const OpStructFieldOmitEmptyInt + const OpStructFieldOmitEmptyIntPtr + const OpStructFieldOmitEmptyIntPtrString + const OpStructFieldOmitEmptyIntString + const OpStructFieldOmitEmptyInterfacePtr + const OpStructFieldOmitEmptyMap + const OpStructFieldOmitEmptyMapPtr + const OpStructFieldOmitEmptyMarshalJSON + const OpStructFieldOmitEmptyMarshalJSONPtr + const OpStructFieldOmitEmptyMarshalText + const OpStructFieldOmitEmptyMarshalTextPtr + const OpStructFieldOmitEmptyNumber + const OpStructFieldOmitEmptyNumberPtr + const OpStructFieldOmitEmptyNumberPtrString + const OpStructFieldOmitEmptyNumberString + const OpStructFieldOmitEmptySlice + const OpStructFieldOmitEmptySlicePtr + const OpStructFieldOmitEmptyString + const OpStructFieldOmitEmptyStringPtr + const OpStructFieldOmitEmptyStringPtrString + const OpStructFieldOmitEmptyStringString + const OpStructFieldOmitEmptyStruct + const OpStructFieldOmitEmptyUint + const OpStructFieldOmitEmptyUintPtr + const OpStructFieldOmitEmptyUintPtrString + const OpStructFieldOmitEmptyUintString + const OpStructFieldSlice + const OpStructFieldSlicePtr + const OpStructFieldString + const OpStructFieldStringPtr + const OpStructFieldStringPtrString + const OpStructFieldStringString + const OpStructFieldStruct + const OpStructFieldUint + const OpStructFieldUintPtr + const OpStructFieldUintPtrString + const OpStructFieldUintString + const OpStructHead + const OpStructHeadArray + const OpStructHeadArrayPtr + const OpStructHeadBool + const OpStructHeadBoolPtr + const OpStructHeadBoolPtrString + const OpStructHeadBoolString + const OpStructHeadBytes + const OpStructHeadBytesPtr + const OpStructHeadFloat32 + const OpStructHeadFloat32Ptr + const OpStructHeadFloat32PtrString + const OpStructHeadFloat32String + const OpStructHeadFloat64 + const OpStructHeadFloat64Ptr + const OpStructHeadFloat64PtrString + const OpStructHeadFloat64String + const OpStructHeadInt + const OpStructHeadIntPtr + const OpStructHeadIntPtrString + const OpStructHeadIntString + const OpStructHeadInterfacePtr + const OpStructHeadMap + const OpStructHeadMapPtr + const OpStructHeadMarshalJSON + const OpStructHeadMarshalJSONPtr + const OpStructHeadMarshalText + const OpStructHeadMarshalTextPtr + const OpStructHeadNumber + const OpStructHeadNumberPtr + const OpStructHeadNumberPtrString + const OpStructHeadNumberString + const OpStructHeadOmitEmpty + const OpStructHeadOmitEmptyArray + const OpStructHeadOmitEmptyArrayPtr + const OpStructHeadOmitEmptyBool + const OpStructHeadOmitEmptyBoolPtr + const OpStructHeadOmitEmptyBoolPtrString + const OpStructHeadOmitEmptyBoolString + const OpStructHeadOmitEmptyBytes + const OpStructHeadOmitEmptyBytesPtr + const OpStructHeadOmitEmptyFloat32 + const OpStructHeadOmitEmptyFloat32Ptr + const OpStructHeadOmitEmptyFloat32PtrString + const OpStructHeadOmitEmptyFloat32String + const OpStructHeadOmitEmptyFloat64 + const OpStructHeadOmitEmptyFloat64Ptr + const OpStructHeadOmitEmptyFloat64PtrString + const OpStructHeadOmitEmptyFloat64String + const OpStructHeadOmitEmptyInt + const OpStructHeadOmitEmptyIntPtr + const OpStructHeadOmitEmptyIntPtrString + const OpStructHeadOmitEmptyIntString + const OpStructHeadOmitEmptyInterfacePtr + const OpStructHeadOmitEmptyMap + const OpStructHeadOmitEmptyMapPtr + const OpStructHeadOmitEmptyMarshalJSON + const OpStructHeadOmitEmptyMarshalJSONPtr + const OpStructHeadOmitEmptyMarshalText + const OpStructHeadOmitEmptyMarshalTextPtr + const OpStructHeadOmitEmptyNumber + const OpStructHeadOmitEmptyNumberPtr + const OpStructHeadOmitEmptyNumberPtrString + const OpStructHeadOmitEmptyNumberString + const OpStructHeadOmitEmptySlice + const OpStructHeadOmitEmptySlicePtr + const OpStructHeadOmitEmptyString + const OpStructHeadOmitEmptyStringPtr + const OpStructHeadOmitEmptyStringPtrString + const OpStructHeadOmitEmptyStringString + const OpStructHeadOmitEmptyStruct + const OpStructHeadOmitEmptyUint + const OpStructHeadOmitEmptyUintPtr + const OpStructHeadOmitEmptyUintPtrString + const OpStructHeadOmitEmptyUintString + const OpStructHeadSlice + const OpStructHeadSlicePtr + const OpStructHeadString + const OpStructHeadStringPtr + const OpStructHeadStringPtrString + const OpStructHeadStringString + const OpStructHeadStruct + const OpStructHeadUint + const OpStructHeadUintPtr + const OpStructHeadUintPtrString + const OpStructHeadUintString + const OpStructPtrHead + const OpStructPtrHeadArray + const OpStructPtrHeadArrayPtr + const OpStructPtrHeadBool + const OpStructPtrHeadBoolPtr + const OpStructPtrHeadBoolPtrString + const OpStructPtrHeadBoolString + const OpStructPtrHeadBytes + const OpStructPtrHeadBytesPtr + const OpStructPtrHeadFloat32 + const OpStructPtrHeadFloat32Ptr + const OpStructPtrHeadFloat32PtrString + const OpStructPtrHeadFloat32String + const OpStructPtrHeadFloat64 + const OpStructPtrHeadFloat64Ptr + const OpStructPtrHeadFloat64PtrString + const OpStructPtrHeadFloat64String + const OpStructPtrHeadInt + const OpStructPtrHeadIntPtr + const OpStructPtrHeadIntPtrString + const OpStructPtrHeadIntString + const OpStructPtrHeadInterfacePtr + const OpStructPtrHeadMap + const OpStructPtrHeadMapPtr + const OpStructPtrHeadMarshalJSON + const OpStructPtrHeadMarshalJSONPtr + const OpStructPtrHeadMarshalText + const OpStructPtrHeadMarshalTextPtr + const OpStructPtrHeadNumber + const OpStructPtrHeadNumberPtr + const OpStructPtrHeadNumberPtrString + const OpStructPtrHeadNumberString + const OpStructPtrHeadOmitEmpty + const OpStructPtrHeadOmitEmptyArray + const OpStructPtrHeadOmitEmptyArrayPtr + const OpStructPtrHeadOmitEmptyBool + const OpStructPtrHeadOmitEmptyBoolPtr + const OpStructPtrHeadOmitEmptyBoolPtrString + const OpStructPtrHeadOmitEmptyBoolString + const OpStructPtrHeadOmitEmptyBytes + const OpStructPtrHeadOmitEmptyBytesPtr + const OpStructPtrHeadOmitEmptyFloat32 + const OpStructPtrHeadOmitEmptyFloat32Ptr + const OpStructPtrHeadOmitEmptyFloat32PtrString + const OpStructPtrHeadOmitEmptyFloat32String + const OpStructPtrHeadOmitEmptyFloat64 + const OpStructPtrHeadOmitEmptyFloat64Ptr + const OpStructPtrHeadOmitEmptyFloat64PtrString + const OpStructPtrHeadOmitEmptyFloat64String + const OpStructPtrHeadOmitEmptyInt + const OpStructPtrHeadOmitEmptyIntPtr + const OpStructPtrHeadOmitEmptyIntPtrString + const OpStructPtrHeadOmitEmptyIntString + const OpStructPtrHeadOmitEmptyInterfacePtr + const OpStructPtrHeadOmitEmptyMap + const OpStructPtrHeadOmitEmptyMapPtr + const OpStructPtrHeadOmitEmptyMarshalJSON + const OpStructPtrHeadOmitEmptyMarshalJSONPtr + const OpStructPtrHeadOmitEmptyMarshalText + const OpStructPtrHeadOmitEmptyMarshalTextPtr + const OpStructPtrHeadOmitEmptyNumber + const OpStructPtrHeadOmitEmptyNumberPtr + const OpStructPtrHeadOmitEmptyNumberPtrString + const OpStructPtrHeadOmitEmptyNumberString + const OpStructPtrHeadOmitEmptySlice + const OpStructPtrHeadOmitEmptySlicePtr + const OpStructPtrHeadOmitEmptyString + const OpStructPtrHeadOmitEmptyStringPtr + const OpStructPtrHeadOmitEmptyStringPtrString + const OpStructPtrHeadOmitEmptyStringString + const OpStructPtrHeadOmitEmptyStruct + const OpStructPtrHeadOmitEmptyUint + const OpStructPtrHeadOmitEmptyUintPtr + const OpStructPtrHeadOmitEmptyUintPtrString + const OpStructPtrHeadOmitEmptyUintString + const OpStructPtrHeadSlice + const OpStructPtrHeadSlicePtr + const OpStructPtrHeadString + const OpStructPtrHeadStringPtr + const OpStructPtrHeadStringPtrString + const OpStructPtrHeadStringString + const OpStructPtrHeadStruct + const OpStructPtrHeadUint + const OpStructPtrHeadUintPtr + const OpStructPtrHeadUintPtrString + const OpStructPtrHeadUintString + const OpUint + const OpUintPtr + const OpUintPtrString + const OpUintString + func (t OpType) CodeType() CodeType + func (t OpType) FieldToEnd() OpType + func (t OpType) FieldToOmitEmptyField() OpType + func (t OpType) HeadToOmitEmptyHead() OpType + func (t OpType) HeadToPtrHead() OpType + func (t OpType) IsMultipleOpField() bool + func (t OpType) IsMultipleOpHead() bool + func (t OpType) PtrHeadToHead() OpType + func (t OpType) String() string + type Opcode struct + DisplayIdx uint32 + DisplayKey string + ElemIdx uint32 + End *Opcode + FieldQuery *FieldQuery + Flags OpFlags + Idx uint32 + Indent uint32 + Jmp *CompiledCode + Key string + Length uint32 + Next *Opcode + NextField *Opcode + NumBitSize uint8 + Offset uint32 + Op OpType + PtrNum uint8 + Size uint32 + Type *runtime.Type + func ToEndCode(code *Opcode) *Opcode + func (c *Opcode) Dump() string + func (c *Opcode) IsEnd() bool + func (c *Opcode) IterNext() *Opcode + func (c *Opcode) MaxIdx() uint32 + func (c *Opcode) ToFieldType(isString bool) OpType + func (c *Opcode) ToHeaderType(isString bool) OpType + func (c *Opcode) TotalLength() int + func (c *Opcode) Validate() error + type OpcodeSet struct + Code Code + CodeLength int + EndCode *Opcode + EscapeKeyCode *Opcode + InterfaceEscapeKeyCode *Opcode + InterfaceNoescapeKeyCode *Opcode + NoescapeKeyCode *Opcode + QueryCache map[string]*OpcodeSet + Type *runtime.Type + func CompileToGetCodeSet(ctx *RuntimeContext, typeptr uintptr) (*OpcodeSet, error) + type Opcodes []*Opcode + func (o Opcodes) Add(codes ...*Opcode) Opcodes + func (o Opcodes) First() *Opcode + func (o Opcodes) Last() *Opcode + type Option struct + ColorScheme *ColorScheme + Context context.Context + DebugOut io.Writer + Flag OptionFlag + type OptionFlag uint16 + const ColorizeOption + const ContextOption + const DebugOption + const FieldQueryOption + const HTMLEscapeOption + const IndentOption + const NilSliceAsEmptyOption + const NormalizeUTF8Option + const UnorderedMapOption + type PtrCode struct + func (c *PtrCode) Filter(query *FieldQuery) Code + func (c *PtrCode) Kind() CodeKind + func (c *PtrCode) ToAnonymousOpcode(ctx *compileContext) Opcodes + func (c *PtrCode) ToOpcode(ctx *compileContext) Opcodes + type RuntimeContext struct + BaseIndent uint32 + Buf []byte + Context context.Context + IndentStr []byte + KeepRefs []unsafe.Pointer + MarshalBuf []byte + Option *Option + Prefix []byte + Ptrs []uintptr + SeenPtr []uintptr + func TakeRuntimeContext() *RuntimeContext + func (c *RuntimeContext) Init(p uintptr, codelen int) + func (c *RuntimeContext) Ptr() uintptr + type SliceCode struct + func (c *SliceCode) Filter(_ *FieldQuery) Code + func (c *SliceCode) Kind() CodeKind + func (c *SliceCode) ToOpcode(ctx *compileContext) Opcodes + type StringCode struct + func (c *StringCode) Filter(_ *FieldQuery) Code + func (c *StringCode) Kind() CodeKind + func (c *StringCode) ToOpcode(ctx *compileContext) Opcodes + type StructCode struct + func (c *StructCode) Filter(query *FieldQuery) Code + func (c *StructCode) Kind() CodeKind + func (c *StructCode) ToAnonymousOpcode(ctx *compileContext) Opcodes + func (c *StructCode) ToOpcode(ctx *compileContext) Opcodes + type StructFieldCode struct + func (c *StructFieldCode) ToAnonymousOpcode(ctx *compileContext, isFirstField, isEndField bool) Opcodes + func (c *StructFieldCode) ToOpcode(ctx *compileContext, isFirstField, isEndField bool) Opcodes + type UintCode struct + func (c *UintCode) Filter(_ *FieldQuery) Code + func (c *UintCode) Kind() CodeKind + func (c *UintCode) ToOpcode(ctx *compileContext) Opcodes