MCPcopy Index your code
hub / github.com/redspread/spread / decodeField

Function decodeField

pkg/data/decode.go:9–32  ·  view source on GitHub ↗
(field *pb.Field)

Source from the content-addressed store, hash-verified

7)
8
9func decodeField(field *pb.Field) (interface{}, error) {
10 val := field.GetValue()
11 if val == nil {
12 return nil, nil
13 }
14
15 switch v := val.(type) {
16 case *pb.Field_Number:
17 return v.Number, nil
18 case *pb.Field_Str:
19 return v.Str, nil
20 case *pb.Field_Boolean:
21 return v.Boolean, nil
22 case *pb.Field_Object:
23 return decodeObject(v.Object.GetItems())
24 case *pb.Field_Array:
25 return decodeArray(v.Array.GetItems())
26 case *pb.Field_Link:
27 // TODO: IMPLEMENT FOLLOWING LINKS
28 return nil, nil
29 }
30
31 return nil, fmt.Errorf("unknown type for Field '%s'", field.Key)
32}
33
34func decodeObject(fields map[string]*pb.Field) (map[string]interface{}, error) {
35 out := make(map[string]interface{}, len(fields))

Callers 3

MapFromObjectFunction · 0.85
decodeObjectFunction · 0.85
decodeArrayFunction · 0.85

Calls 4

decodeObjectFunction · 0.85
decodeArrayFunction · 0.85
GetValueMethod · 0.45
GetItemsMethod · 0.45

Tested by

no test coverage detected