Parse parses and validates the measurements.
(measurements []*structpb.Struct)
| 532 | |
| 533 | // Parse parses and validates the measurements. |
| 534 | func Parse(measurements []*structpb.Struct) ([]ParsedMeasurement, error) { |
| 535 | res := make([]ParsedMeasurement, len(measurements)) |
| 536 | for i, src := range measurements { |
| 537 | res[i].Valid = &structpb.Struct{ |
| 538 | Fields: make(map[string]*structpb.Value), |
| 539 | } |
| 540 | err := parse(&res[i], src, "") |
| 541 | if err != nil { |
| 542 | return nil, err |
| 543 | } |
| 544 | } |
| 545 | return res, nil |
| 546 | } |
| 547 | |
| 548 | func parse(dst *ParsedMeasurement, src *structpb.Struct, prefix string) error { |
| 549 | for k, v := range src.GetFields() { |