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)
}
}