func getFromMapField(field *pb.Field, key string) (*pb.Field, error) { fieldMap := field.GetObject() if fieldMap == nil { return nil, fmt.Errorf("field '%s' isn't an object, cannot access %s['%s']", field.Key, field.Key, key) } items := fieldMap.GetItems() if items == nil { return nil, fmt.Errorf("the object wrapper struct for the value of field '%s' had nil for items, cannot access %s[%s]", field.Key, field.Key, key) } item, ok := items[key] if !ok { return nil, fmt.Errorf("no key '%s' in map for field '%s", key, field.Key) } return item, nil }