You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: struct.go
    path of file: ./repos/podman/vendor/github.com/goccy/go-json/internal/decoder
    
    the code of the file until where you have to start completion: package decoder

import (
	"fmt"
	"math"
	"math/bits"
	"sort"
	"strings"
	"unicode"
	"unicode/utf16"
	"unsafe"

	"github.com/goccy/go-json/internal/errors"
)

type structFieldSet struct {
	dec         Decoder
	offset      uintptr
	isTaggedKey bool
	fieldIdx    int
	key         string
	keyLen      int64
	err         error
}

type structDecoder struct {
	fieldMap           map[string]*structFieldSet
	fieldUniqueNameNum int
	stringDecoder 
    
func decodeKeyCharByUnicodeRuneStream(s *Stream) ([]byte, error) {
	const defaultOffset = 4
	const surrogateOffset = 6

	if s.cursor+defaultOffset >= s.length {
		if !s.read() {
			return nil, errors.ErrInvalidCharacter(s.char(), "escaped unicode char", s.totalOffset())
		}
	}

	r := unicodeToRune(s.buf[s.cursor : s.cursor+defaultOffset])
	if utf16.IsSurrogate(r) {
		s.cursor += defaultOffset
		if s.cursor+surrogateOffset >= s.length {
			s.read()
		}
		if s.cursor+surrogateOffset >= s.length || s.buf[s.cursor] != '\\' || s.buf[s.cursor+1] != 'u' {
			s.cursor += defaultOffset - 1
			return []byte(string(unicode.ReplacementChar)), nil
		}
		r2 := unicodeToRune(s.buf[s.cursor+defaultOffset+2 : s.cursor+surrogateOffset])
		if r := utf16.DecodeRune(r, r2); r != unicode.ReplacementChar {
			s.cursor += defaultOffset - 1
			return []byte(string(r)), nil
		}
	}
	s.cursor += defaultOffset - 1
	return []byte(string(r)), nil
}