func buildValue()

in sftest/sftest.go [192:238]


func buildValue(rec Recording) (interface{}, Recording, error) {
	if len(rec) == 0 {
		return nil, nil, errors.New("empty recording")
	}

	switch v := rec[0].(type) {
	case NilRec:
		return nil, rec[1:], nil
	case BoolRec:
		return v.Value, rec[1:], nil
	case StringRec:
		return v.Value, rec[1:], nil
	case IntRec:
		return v.Value, rec[1:], nil
	case Int8Rec:
		return v.Value, rec[1:], nil
	case Int16Rec:
		return v.Value, rec[1:], nil
	case Int32Rec:
		return v.Value, rec[1:], nil
	case Int64Rec:
		return v.Value, rec[1:], nil
	case UintRec:
		return v.Value, rec[1:], nil
	case ByteRec:
		return v.Value, rec[1:], nil
	case Uint8Rec:
		return v.Value, rec[1:], nil
	case Uint16Rec:
		return v.Value, rec[1:], nil
	case Uint32Rec:
		return v.Value, rec[1:], nil
	case Uint64Rec:
		return v.Value, rec[1:], nil
	case Float32Rec:
		return v.Value, rec[1:], nil
	case Float64Rec:
		return v.Value, rec[1:], nil
	case ArrayStartRec:
		return buildArray(rec[1:])
	case ObjectStartRec:
		return buildObject(rec[1:])

	default:
		return nil, nil, fmt.Errorf("Invalid record entry: %v", v)
	}
}