| 350 | |
| 351 | template<typename T> |
| 352 | static bool splitPossibleUnbracedList(std::string_view input, T& state, const CSVOption* option) { |
| 353 | input = StringUtils::ltrim(StringUtils::rtrim(input)); |
| 354 | auto split = StringUtils::smartSplit(input, ';'); |
| 355 | if (split.size() == 1 && input.front() == '[' && input.back() == ']') { |
| 356 | split = StringUtils::smartSplit(input.substr(1, input.size() - 2), ';'); |
| 357 | } |
| 358 | for (auto& i : split) { |
| 359 | state.handleValue(i.data(), i.data() + i.length(), option); |
| 360 | } |
| 361 | return true; |
| 362 | } |
| 363 | |
| 364 | template<typename T> |
| 365 | static inline void startListCast(const char* input, uint64_t len, T split, const CSVOption* option, |