func buildObject()

in sftest/sftest.go [264:290]


func buildObject(rec Recording) (interface{}, Recording, error) {
	obj := map[string]interface{}{}

	for len(rec) > 0 {
		var (
			key string
			v   interface{}
			err error
		)

		switch v := rec[0].(type) {
		case ObjectFinishRec:
			return obj, rec[1:], nil
		case ObjectKeyRec:
			key = v.Value
		}

		v, rec, err = buildValue(rec[1:])
		if err != nil {
			return nil, nil, err
		}

		obj[key] = v
	}

	return nil, nil, errors.New("missing object finish record")
}