func()

in ubjson/parse.go [245:290]


func (p *Parser) execStep(b []byte) ([]byte, bool, error) {
	var (
		err  error
		done bool
	)

	switch p.state.current.stateType {
	case stFail:
		return b, false, p.err
	case stNext:
		b, done, err = p.stepValue(b)
	case stFixed:
		b, done, err = p.stepFixedValue(b)
	case stHighPrec:
		b, done, err = p.stepString(b)
	case stString:
		b, done, err = p.stepString(b)

	case stArray:
		b, err = p.stepArrayInit(b)
	case stArrayDyn:
		b, done, err = p.stepArrayDyn(b)
	case stArrayCount:
		b, done, err = p.stepArrayCount(b)
	case stArrayTyped:
		b, done, err = p.stepArrayTyped(b)

	case stObject:
		b, err = p.stepObjectInit(b)
	case stObjectDyn:
		b, done, err = p.stepObjectDyn(b)
	case stObjectCount:
		b, done, err = p.stepObjectCount(b)
	case stObjectTyped:
		b, done, err = p.stepObjectTyped(b)

	default:
		err = errInvalidState
	}

	if err != nil {
		p.err = err
	}

	return b, done, err
}