func getFromArrayField(field *pb.Field, index int) (*pb.Field, error) { fieldArr := field.GetArray() if fieldArr == nil { return nil, fmt.Errorf("field '%s' isn't an array, cannot access %s[%d]", field.Key, field.Key, index) } items := fieldArr.GetItems() if items == nil { return nil, fmt.Errorf("the array wrapper struct for the value of field '%s' had nil for items, cannot access %s[%d]", field.Key, field.Key, index) } else if len(items)-1 < index { return nil, fmt.Errorf("could not access %s[%d], the size of '%s' is %d", field.Key, index, field.Key, len(items)) } return items[index], nil }